|
2786 | 2786 | "refId": "A" |
2787 | 2787 | } |
2788 | 2788 | ] |
| 2789 | + }, |
| 2790 | + { |
| 2791 | + "collapsed": false, |
| 2792 | + "gridPos": { "h": 1, "w": 24, "x": 0, "y": 182 }, |
| 2793 | + "id": 152, |
| 2794 | + "title": "Backlog-vs-Fresh-Intake Lane Fairness (#selfhost-lane-observability)", |
| 2795 | + "type": "row" |
| 2796 | + }, |
| 2797 | + { |
| 2798 | + "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, |
| 2799 | + "fieldConfig": { |
| 2800 | + "defaults": { |
| 2801 | + "color": { "mode": "thresholds" }, |
| 2802 | + "thresholds": { |
| 2803 | + "mode": "absolute", |
| 2804 | + "steps": [ |
| 2805 | + { "color": "green", "value": null }, |
| 2806 | + { "color": "yellow", "value": 10 }, |
| 2807 | + { "color": "red", "value": 30 } |
| 2808 | + ] |
| 2809 | + }, |
| 2810 | + "unit": "short" |
| 2811 | + } |
| 2812 | + }, |
| 2813 | + "gridPos": { "h": 4, "w": 4, "x": 0, "y": 183 }, |
| 2814 | + "id": 153, |
| 2815 | + "options": { |
| 2816 | + "colorMode": "background", |
| 2817 | + "graphMode": "none", |
| 2818 | + "justifyMode": "auto", |
| 2819 | + "orientation": "auto", |
| 2820 | + "reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false }, |
| 2821 | + "textMode": "auto" |
| 2822 | + }, |
| 2823 | + "title": "Backlog-Convergence Pending", |
| 2824 | + "type": "stat", |
| 2825 | + "targets": [ |
| 2826 | + { |
| 2827 | + "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, |
| 2828 | + "expr": "gittensory_queue_backlog_convergence_pending", |
| 2829 | + "legendFormat": "backlog pending" |
| 2830 | + } |
| 2831 | + ] |
| 2832 | + }, |
| 2833 | + { |
| 2834 | + "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, |
| 2835 | + "fieldConfig": { |
| 2836 | + "defaults": { |
| 2837 | + "color": { "mode": "thresholds" }, |
| 2838 | + "thresholds": { |
| 2839 | + "mode": "absolute", |
| 2840 | + "steps": [ |
| 2841 | + { "color": "green", "value": null }, |
| 2842 | + { "color": "yellow", "value": 10 }, |
| 2843 | + { "color": "red", "value": 30 } |
| 2844 | + ] |
| 2845 | + }, |
| 2846 | + "unit": "short" |
| 2847 | + } |
| 2848 | + }, |
| 2849 | + "gridPos": { "h": 4, "w": 4, "x": 4, "y": 183 }, |
| 2850 | + "id": 154, |
| 2851 | + "options": { |
| 2852 | + "colorMode": "background", |
| 2853 | + "graphMode": "none", |
| 2854 | + "justifyMode": "auto", |
| 2855 | + "orientation": "auto", |
| 2856 | + "reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false }, |
| 2857 | + "textMode": "auto" |
| 2858 | + }, |
| 2859 | + "title": "Fresh-Intake Pending", |
| 2860 | + "type": "stat", |
| 2861 | + "targets": [ |
| 2862 | + { |
| 2863 | + "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, |
| 2864 | + "expr": "gittensory_queue_fresh_intake_pending", |
| 2865 | + "legendFormat": "fresh pending" |
| 2866 | + } |
| 2867 | + ] |
| 2868 | + }, |
| 2869 | + { |
| 2870 | + "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, |
| 2871 | + "fieldConfig": { |
| 2872 | + "defaults": { "color": { "mode": "palette-classic" }, "custom": { "lineWidth": 2, "fillOpacity": 10 }, "unit": "short" } |
| 2873 | + }, |
| 2874 | + "gridPos": { "h": 6, "w": 16, "x": 8, "y": 183 }, |
| 2875 | + "id": 155, |
| 2876 | + "options": { |
| 2877 | + "legend": { "calcs": ["lastNotNull"], "displayMode": "table", "placement": "bottom" }, |
| 2878 | + "tooltip": { "mode": "multi", "sort": "desc" } |
| 2879 | + }, |
| 2880 | + "title": "GitHub REST Rate Limit Remaining (by scope)", |
| 2881 | + "description": "The NEWEST observed x-ratelimit-remaining per key_scope -- unlike gittensory_github_rest_rate_limit_observations_total (a bucketed rate() counter), this is the actual current remaining count.", |
| 2882 | + "type": "timeseries", |
| 2883 | + "targets": [ |
| 2884 | + { |
| 2885 | + "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, |
| 2886 | + "expr": "gittensory_github_rest_rate_limit_remaining", |
| 2887 | + "legendFormat": "{{key_scope}}", |
| 2888 | + "refId": "A" |
| 2889 | + } |
| 2890 | + ] |
| 2891 | + }, |
| 2892 | + { |
| 2893 | + "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, |
| 2894 | + "fieldConfig": { |
| 2895 | + "defaults": { "color": { "mode": "palette-classic" }, "custom": { "lineWidth": 2, "fillOpacity": 10 }, "unit": "ops" } |
| 2896 | + }, |
| 2897 | + "gridPos": { "h": 6, "w": 12, "x": 0, "y": 189 }, |
| 2898 | + "id": 156, |
| 2899 | + "options": { |
| 2900 | + "legend": { "calcs": ["lastNotNull"], "displayMode": "table", "placement": "bottom" }, |
| 2901 | + "tooltip": { "mode": "multi", "sort": "desc" } |
| 2902 | + }, |
| 2903 | + "title": "Foreground Claims by Lane (rate)", |
| 2904 | + "type": "timeseries", |
| 2905 | + "targets": [ |
| 2906 | + { |
| 2907 | + "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, |
| 2908 | + "expr": "sum by (lane) (rate(gittensory_jobs_claimed_by_lane_total[5m])) or vector(0)", |
| 2909 | + "legendFormat": "{{lane}}", |
| 2910 | + "refId": "A" |
| 2911 | + } |
| 2912 | + ] |
| 2913 | + }, |
| 2914 | + { |
| 2915 | + "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, |
| 2916 | + "fieldConfig": { "defaults": { "unit": "short" } }, |
| 2917 | + "gridPos": { "h": 6, "w": 12, "x": 12, "y": 189 }, |
| 2918 | + "id": 157, |
| 2919 | + "options": { |
| 2920 | + "showHeader": true, |
| 2921 | + "cellHeight": "sm", |
| 2922 | + "footer": { "show": false, "reducer": ["sum"], "fields": "" } |
| 2923 | + }, |
| 2924 | + "title": "Top Repos by Backlog Depth", |
| 2925 | + "description": "Top-10 repos by backlog-convergence pending depth, recomputed fresh every scrape -- bounded so a large multi-repo self-host install never explodes this panel's series count.", |
| 2926 | + "type": "table", |
| 2927 | + "targets": [ |
| 2928 | + { |
| 2929 | + "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, |
| 2930 | + "expr": "gittensory_queue_backlog_by_repo", |
| 2931 | + "format": "table", |
| 2932 | + "instant": true, |
| 2933 | + "legendFormat": "__auto", |
| 2934 | + "refId": "A" |
| 2935 | + } |
| 2936 | + ], |
| 2937 | + "transformations": [ |
| 2938 | + { |
| 2939 | + "id": "organize", |
| 2940 | + "options": { |
| 2941 | + "excludeByName": { "Time": true, "__name__": true, "job": true, "instance": true }, |
| 2942 | + "indexByName": { "repo": 0, "Value": 1 } |
| 2943 | + } |
| 2944 | + } |
| 2945 | + ] |
2789 | 2946 | } |
2790 | 2947 | ], |
2791 | 2948 | "refresh": "30s", |
|
0 commit comments