apiVersion: v1
kind: ConfigMap
metadata:
  name: grafana-dashboards-config
  namespace: calico-monitoring
data:
  calico-dashboards.yaml: |-
    apiVersion: 1
    providers:
    - name: 'calico-dashboards'
      orgId: 1
      folder: ''
      folderUid: ''
      type: file
      disableDeletion: false
      editable: true
      updateIntervalSeconds: 10
      allowUiUpdates: false
      options:
        path: /etc/grafana/provisioning/dashboards
  felix-dashboard.json: |-
    {"annotations":{"list":[{"builtIn":1,"datasource":"-- Grafana --","enable":true,"hide":true,"iconColor":"rgba(0, 211, 255, 1)","name":"Annotations & Alerts","type":"dashboard"}]},"description":"Felix dashboard is part of calico documentation website, you will have great insight about you Calico instance by using this dashboard.","editable":true,"gnetId":12175,"graphTooltip":0,"id":1,"links":[{"icon":"external link","includeVars":false,"tags":[],"targetBlank":true,"title":"Calico documentation","tooltip":"Comprehensive tutorial on how to use this dashboard.","type":"link","url":"https://docs.projectcalico.org/master/maintenance/monitor/monitor-component-visual"}],"panels":[{"collapsed":false,"datasource":"calico-demo-prometheus","gridPos":{"h":1,"w":24,"x":0,"y":0},"id":6,"panels":[],"title":"Alerts and general info","type":"row"},{"cacheTimeout":null,"datasource":"calico-demo-prometheus","description":"These metrics are part of general information related to your Calico implementation.","gridPos":{"h":4,"w":8,"x":0,"y":1},"id":2,"links":[],"options":{"fieldOptions":{"calcs":["lastNotNull"],"defaults":{"mappings":[],"thresholds":{"mode":"absolute","steps":[{"color":"green","value":null},{"color":"red","value":80}]}},"overrides":[],"values":false},"orientation":"auto","showThresholdLabels":false,"showThresholdMarkers":true},"pluginVersion":"6.7.3","targets":[{"expr":"felix_active_local_endpoints","interval":"","legendFormat":"{{instance}}","refId":"A"}],"timeFrom":null,"timeShift":null,"title":"Active hosts on each node","transparent":true,"type":"gauge"},{"cacheTimeout":null,"colorBackground":false,"colorValue":true,"colors":["#299c46","rgba(237, 129, 40, 0.89)","#d44a3a"],"datasource":"calico-demo-prometheus","format":"none","gauge":{"maxValue":100,"minValue":0,"show":false,"thresholdLabels":false,"thresholdMarkers":true},"gridPos":{"h":4,"w":3,"x":8,"y":1},"id":25,"interval":null,"links":[],"mappingType":1,"mappingTypes":[{"name":"value to text","value":1},{"name":"range to text","value":2}],"maxDataPoints":100,"nullPointMode":"connected","nullText":null,"pluginVersion":"6.7.3","postfix":"","postfixFontSize":"200%","prefix":"","prefixFontSize":"200%","rangeMaps":[{"from":"null","text":"N/A","to":"null"}],"sparkline":{"fillColor":"rgba(31, 118, 189, 0.18)","full":false,"lineColor":"rgb(31, 120, 193)","show":false,"ymax":null,"ymin":null},"tableColumn":"","targets":[{"expr":"sum(rate(felix_iptables_save_errors[5m]))","interval":"","legendFormat":"{{instance}}","refId":"A"}],"thresholds":"","timeFrom":null,"timeShift":null,"title":"iptables save errors","transparent":true,"type":"singlestat","valueFontSize":"200%","valueMaps":[{"op":"=","text":"N/A","value":"null"}],"valueName":"current"},{"cacheTimeout":null,"colorBackground":false,"colorValue":true,"colors":["#299c46","rgba(237, 129, 40, 0.89)","#d44a3a"],"datasource":"calico-demo-prometheus","format":"none","gauge":{"maxValue":100,"minValue":0,"show":false,"thresholdLabels":false,"thresholdMarkers":true},"gridPos":{"h":4,"w":3,"x":11,"y":1},"id":23,"interval":null,"links":[],"mappingType":1,"mappingTypes":[{"name":"value to text","value":1},{"name":"range to text","value":2}],"maxDataPoints":100,"nullPointMode":"connected","nullText":null,"pluginVersion":"6.7.3","postfix":"","postfixFontSize":"200%","prefix":"","prefixFontSize":"200%","rangeMaps":[{"from":"null","text":"N/A","to":"null"}],"sparkline":{"fillColor":"rgba(31, 118, 189, 0.18)","full":false,"lineColor":"rgb(31, 120, 193)","show":false,"ymax":null,"ymin":null},"tableColumn":"","targets":[{"expr":"sum(rate(felix_ipset_errors[5m]))","interval":"","legendFormat":"","refId":"A"}],"thresholds":"","timeFrom":null,"timeShift":null,"title":"ipset errors","transparent":true,"type":"singlestat","valueFontSize":"200%","valueMaps":[{"op":"=","text":"N/A","value":"null"}],"valueName":"current"},{"cacheTimeout":null,"colorBackground":false,"colorValue":true,"colors":["#299c46","rgba(237, 129, 40, 0.89)","#d44a3a"],"datasource":"calico-demo-prometheus","format":"none","gauge":{"maxValue":100,"minValue":0,"show":false,"thresholdLabels":false,"thresholdMarkers":true},"gridPos":{"h":4,"w":3,"x":14,"y":1},"id":18,"interval":null,"links":[],"mappingType":1,"mappingTypes":[{"name":"value to text","value":1},{"name":"range to text","value":2}],"maxDataPoints":100,"nullPointMode":"connected","nullText":null,"pluginVersion":"6.7.3","postfix":"","postfixFontSize":"200%","prefix":"","prefixFontSize":"200%","rangeMaps":[{"from":"null","text":"N/A","to":"null"}],"sparkline":{"fillColor":"rgba(31, 118, 189, 0.18)","full":false,"lineColor":"rgb(31, 120, 193)","show":false,"ymax":null,"ymin":null},"tableColumn":"","targets":[{"expr":"max(felix_cluster_num_hosts)","interval":"","legendFormat":"Calico node","refId":"A"}],"thresholds":"","timeFrom":null,"timeShift":null,"title":"Active calico nodes","transparent":true,"type":"singlestat","valueFontSize":"200%","valueMaps":[{"op":"=","text":"N/A","value":"null"}],"valueName":"current"},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"calico-demo-prometheus","description":"This graph shows you all the errors that Calico encounters, it is important to note occasional errors are acceptable. However, rise in the number of error or constant error counters means Calico is not working properly.","fill":1,"fillGradient":0,"gridPos":{"h":4,"w":7,"x":17,"y":1},"hiddenSeries":false,"id":28,"legend":{"avg":false,"current":false,"hideEmpty":false,"max":false,"min":false,"show":false,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","options":{"dataLinks":[]},"percentage":false,"pluginVersion":"6.7.2","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"rate(felix_ipset_errors[5m])","interval":"","legendFormat":"{{instance}} ipset errors","refId":"A"},{"expr":"rate(felix_iptables_restore_errors[5m])","interval":"","intervalFactor":1,"legendFormat":"{{instance}} iptables restore errors","refId":"B"},{"expr":"rate(felix_iptables_save_errors[5m])","interval":"","legendFormat":"{{instance}} iptables save errors","refId":"C"},{"expr":"rate(felix_log_errors[5m])","interval":"","legendFormat":"{{instance}} log errors","refId":"D"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Errors plot","tooltip":{"shared":true,"sort":1,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"datasource":"calico-demo-prometheus","description":"More policies on Felix means more effort required by Calico to manage packets. ","gridPos":{"h":4,"w":8,"x":0,"y":5},"id":20,"options":{"fieldOptions":{"calcs":["mean"],"defaults":{"mappings":[],"thresholds":{"mode":"absolute","steps":[{"color":"green","value":null},{"color":"red","value":80}]}},"overrides":[],"values":false},"orientation":"auto","showThresholdLabels":false,"showThresholdMarkers":true},"pluginVersion":"6.7.3","targets":[{"expr":"felix_cluster_num_policies","interval":"","legendFormat":"{{instance}}","refId":"A"}],"timeFrom":null,"timeShift":null,"title":"Felix cluster policies","transparent":true,"type":"gauge"},{"cacheTimeout":null,"colorBackground":false,"colorValue":true,"colors":["#299c46","rgba(237, 129, 40, 0.89)","#d44a3a"],"datasource":"calico-demo-prometheus","format":"none","gauge":{"maxValue":100,"minValue":0,"show":false,"thresholdLabels":false,"thresholdMarkers":true},"gridPos":{"h":4,"w":3,"x":8,"y":5},"id":29,"interval":null,"links":[],"mappingType":1,"mappingTypes":[{"name":"value to text","value":1},{"name":"range to text","value":2}],"maxDataPoints":100,"nullPointMode":"connected","nullText":null,"pluginVersion":"6.7.3","postfix":"","postfixFontSize":"200%","prefix":"","prefixFontSize":"200%","rangeMaps":[{"from":"null","text":"N/A","to":"null"}],"sparkline":{"fillColor":"rgba(31, 118, 189, 0.18)","full":false,"lineColor":"rgb(31, 120, 193)","show":false,"ymax":null,"ymin":null},"tableColumn":"","targets":[{"expr":"sum(rate(felix_iptables_restore_errors[5m]))","interval":"","legendFormat":"","refId":"A"}],"thresholds":"","timeFrom":null,"timeShift":null,"title":"iptables restore errors","transparent":true,"type":"singlestat","valueFontSize":"200%","valueMaps":[{"op":"=","text":"N/A","value":"null"}],"valueName":"current"},{"cacheTimeout":null,"colorBackground":false,"colorValue":true,"colors":["#299c46","rgba(237, 129, 40, 0.89)","#d44a3a"],"datasource":"calico-demo-prometheus","format":"none","gauge":{"maxValue":100,"minValue":0,"show":false,"thresholdLabels":false,"thresholdMarkers":true},"gridPos":{"h":4,"w":3,"x":11,"y":5},"id":26,"interval":null,"links":[],"mappingType":1,"mappingTypes":[{"name":"value to text","value":1},{"name":"range to text","value":2}],"maxDataPoints":100,"nullPointMode":"connected","nullText":null,"pluginVersion":"6.7.3","postfix":"","postfixFontSize":"200%","prefix":"","prefixFontSize":"200%","rangeMaps":[{"from":"null","text":"N/A","to":"null"}],"sparkline":{"fillColor":"rgba(31, 118, 189, 0.18)","full":false,"lineColor":"rgb(31, 120, 193)","show":false,"ymax":null,"ymin":null},"tableColumn":"","targets":[{"expr":"sum(rate(felix_log_errors[5m]))","interval":"","legendFormat":"{{instance}}","refId":"A"}],"thresholds":"","timeFrom":null,"timeShift":null,"title":"Felix log errors","transparent":true,"type":"singlestat","valueFontSize":"200%","valueMaps":[{"op":"=","text":"N/A","value":"null"}],"valueName":"current"},{"cacheTimeout":null,"colorBackground":false,"colorValue":true,"colors":["#299c46","rgba(237, 129, 40, 0.89)","#d44a3a"],"datasource":"calico-demo-prometheus","format":"none","gauge":{"maxValue":100,"minValue":0,"show":false,"thresholdLabels":false,"thresholdMarkers":true},"gridPos":{"h":4,"w":3,"x":14,"y":5},"id":24,"interval":null,"links":[],"mappingType":1,"mappingTypes":[{"name":"value to text","value":1},{"name":"range to text","value":2}],"maxDataPoints":100,"nullPointMode":"connected","nullText":null,"pluginVersion":"6.7.3","postfix":"","postfixFontSize":"200%","prefix":"","prefixFontSize":"200%","rangeMaps":[{"from":"null","text":"N/A","to":"null"}],"sparkline":{"fillColor":"rgba(31, 118, 189, 0.18)","full":false,"lineColor":"rgb(31, 120, 193)","show":false,"ymax":null,"ymin":null},"tableColumn":"","targets":[{"expr":"sum(rate(felix_resyncs_started[5m])) ","interval":"","legendFormat":"","refId":"A"}],"thresholds":"","timeFrom":null,"timeShift":null,"title":"Felix resync started","transparent":true,"type":"singlestat","valueFontSize":"200%","valueMaps":[{"op":"=","text":"N/A","value":"null"}],"valueName":"avg"},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"calico-demo-prometheus","fill":1,"fillGradient":0,"gridPos":{"h":4,"w":7,"x":17,"y":5},"hiddenSeries":false,"id":31,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":false,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"felix_logs_dropped","interval":"","legendFormat":"{{instance}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Felix dropped logs","tooltip":{"shared":true,"sort":0,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"collapsed":false,"datasource":"calico-demo-prometheus","gridPos":{"h":1,"w":24,"x":0,"y":9},"id":14,"panels":[],"title":"Dataplane","type":"row"},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"calico-demo-prometheus","description":"Dataplane apply time can indicate how busy your Kubernetes instance is. This can slow down Calico performance","fill":2,"fillGradient":4,"gridPos":{"h":7,"w":8,"x":0,"y":10},"hiddenSeries":false,"id":16,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":2,"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"felix_int_dataplane_apply_time_seconds{quantile=\"0.5\"}","format":"time_series","instant":false,"interval":"","intervalFactor":1,"legendFormat":"{{instance}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Dataplane apply time quantile 0.5","tooltip":{"shared":true,"sort":0,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"calico-demo-prometheus","fill":2,"fillGradient":4,"gridPos":{"h":7,"w":8,"x":8,"y":10},"hiddenSeries":false,"id":15,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":2,"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"felix_int_dataplane_apply_time_seconds{quantile=\"0.9\"}","interval":"","legendFormat":"{{instance}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Dataplane apply time quantile 0.9","tooltip":{"shared":true,"sort":0,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"calico-demo-prometheus","fill":2,"fillGradient":4,"gridPos":{"h":7,"w":8,"x":16,"y":10},"hiddenSeries":false,"id":12,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":2,"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"felix_int_dataplane_apply_time_seconds{quantile=\"0.99\"}","interval":"","legendFormat":"{{instance}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Dataplane apply time quantile 0.99","tooltip":{"shared":true,"sort":0,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"collapsed":false,"datasource":null,"gridPos":{"h":1,"w":24,"x":0,"y":17},"id":35,"panels":[],"title":"Route table","type":"row"},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"calico-demo-prometheus","fill":1,"fillGradient":0,"gridPos":{"h":7,"w":8,"x":0,"y":18},"hiddenSeries":false,"id":33,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":false,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"felix_route_table_list_seconds{quantile=\"0.5\"}","interval":"","legendFormat":"{{instance}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Felix route table list seconds quantile 0.5","tooltip":{"shared":true,"sort":0,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"calico-demo-prometheus","fill":1,"fillGradient":0,"gridPos":{"h":7,"w":8,"x":8,"y":18},"hiddenSeries":false,"id":36,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":false,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"felix_route_table_list_seconds{quantile=\"0.9\"}","interval":"","legendFormat":"{{instance}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Felix route table list seconds quantile 0.9","tooltip":{"shared":true,"sort":0,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"calico-demo-prometheus","fill":1,"fillGradient":0,"gridPos":{"h":7,"w":8,"x":16,"y":18},"hiddenSeries":false,"id":37,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":false,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"felix_route_table_list_seconds{quantile=\"0.99\"}","interval":"","legendFormat":"{{instance}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Felix route table list seconds quantile 0.99","tooltip":{"shared":true,"sort":0,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}}],"refresh":false,"schemaVersion":22,"style":"dark","tags":["calico","felix","kubernetes","k8s","calico-node","cloud","cluster monitoring","policy monitoring"],"templating":{"list":[]},"time":{"from":"now-6h","to":"now"},"timepicker":{"refresh_intervals":["5s","10s","30s","1m","5m","15m","30m","1h","2h","1d"]},"timezone":"","title":"Felix Dashboard (Calico)","uid":"calico-felix-dashboard","variables":{"list":[]},"version":1}
  typha-dashboard.json: |-
    {"annotations":{"list":[{"builtIn":1,"datasource":{"type":"grafana","uid":"-- Grafana --"},"enable":true,"hide":true,"iconColor":"rgba(0, 211, 255, 1)","name":"Annotations & Alerts","type":"dashboard"}]},"editable":true,"fiscalYearStartMonth":0,"graphTooltip":0,"id":null,"links":[],"liveNow":false,"panels":[{"collapsed":false,"datasource":{"type":"prometheus","uid":"P11C5FC3F3B681947"},"gridPos":{"h":1,"w":24,"x":0,"y":0},"id":23,"panels":[],"targets":[{"datasource":{"type":"prometheus","uid":"P11C5FC3F3B681947"},"refId":"A"}],"title":"Top-level metrics","type":"row"},{"datasource":{"type":"prometheus","uid":"calico-demo-prometheus"},"fieldConfig":{"defaults":{"color":{"mode":"palette-classic"},"custom":{"axisBorderShow":false,"axisCenteredZero":false,"axisColorMode":"text","axisLabel":"","axisPlacement":"auto","barAlignment":0,"drawStyle":"line","fillOpacity":10,"gradientMode":"none","hideFrom":{"legend":false,"tooltip":false,"viz":false},"insertNulls":false,"lineInterpolation":"linear","lineWidth":1,"pointSize":5,"scaleDistribution":{"type":"linear"},"showPoints":"never","spanNulls":false,"stacking":{"group":"A","mode":"none"},"thresholdsStyle":{"mode":"off"}},"mappings":[],"thresholds":{"mode":"absolute","steps":[{"color":"green","value":null},{"color":"red","value":80}]},"unit":"short"},"overrides":[]},"gridPos":{"h":7,"w":6,"x":0,"y":1},"id":10,"options":{"legend":{"calcs":[],"displayMode":"list","placement":"bottom","showLegend":true},"tooltip":{"mode":"multi","sort":"none"}},"pluginVersion":"10.4.0","targets":[{"datasource":{"type":"prometheus","uid":"calico-demo-prometheus"},"editorMode":"code","expr":"max by (instance) (typha_cache_size)","format":"time_series","interval":"2s","intervalFactor":2,"legendFormat":"{{pod}}","metric":"typha_connections_active","range":true,"refId":"A","step":5}],"title":"Datastore cache size","type":"timeseries"},{"datasource":{"type":"prometheus","uid":"calico-demo-prometheus"},"fieldConfig":{"defaults":{"color":{"mode":"palette-classic"},"custom":{"axisBorderShow":false,"axisCenteredZero":false,"axisColorMode":"text","axisLabel":"","axisPlacement":"auto","barAlignment":0,"drawStyle":"line","fillOpacity":10,"gradientMode":"none","hideFrom":{"legend":false,"tooltip":false,"viz":false},"insertNulls":false,"lineInterpolation":"linear","lineWidth":1,"pointSize":5,"scaleDistribution":{"type":"linear"},"showPoints":"never","spanNulls":false,"stacking":{"group":"A","mode":"none"},"thresholdsStyle":{"mode":"off"}},"mappings":[],"min":0,"thresholds":{"mode":"absolute","steps":[{"color":"green","value":null},{"color":"red","value":80}]},"unit":"percentunit"},"overrides":[]},"gridPos":{"h":7,"w":6,"x":6,"y":1},"hideTimeOverride":false,"id":4,"options":{"legend":{"calcs":[],"displayMode":"list","placement":"bottom","showLegend":true},"tooltip":{"mode":"multi","sort":"none"}},"pluginVersion":"10.4.0","targets":[{"datasource":{"type":"prometheus","uid":"calico-demo-prometheus"},"editorMode":"code","expr":"rate(process_cpu_seconds_total{job=\"typha_metrics\"}[30s]) ","format":"time_series","interval":"100ms","intervalFactor":2,"legendFormat":"{{instance}}","metric":"process_cpu_seconds_total","range":true,"refId":"A","step":5}],"title":"CPU Usage","type":"timeseries"},{"datasource":{"type":"prometheus","uid":"calico-demo-prometheus"},"fieldConfig":{"defaults":{"color":{"mode":"palette-classic"},"custom":{"axisBorderShow":false,"axisCenteredZero":false,"axisColorMode":"text","axisLabel":"","axisPlacement":"auto","barAlignment":0,"drawStyle":"line","fillOpacity":10,"gradientMode":"none","hideFrom":{"legend":false,"tooltip":false,"viz":false},"insertNulls":false,"lineInterpolation":"linear","lineWidth":1,"pointSize":5,"scaleDistribution":{"type":"linear"},"showPoints":"never","spanNulls":false,"stacking":{"group":"A","mode":"none"},"thresholdsStyle":{"mode":"off"}},"mappings":[],"thresholds":{"mode":"absolute","steps":[{"color":"green","value":null},{"color":"red","value":80}]},"unit":"bytes"},"overrides":[]},"gridPos":{"h":7,"w":6,"x":12,"y":1},"id":5,"options":{"legend":{"calcs":[],"displayMode":"list","placement":"bottom","showLegend":true},"tooltip":{"mode":"multi","sort":"none"}},"pluginVersion":"10.4.0","targets":[{"datasource":{"type":"prometheus","uid":"calico-demo-prometheus"},"editorMode":"code","expr":"process_resident_memory_bytes{job=\"typha_metrics\"}\n","format":"time_series","interval":"200ms","intervalFactor":2,"legendFormat":"{{instance}}","metric":"go_memstats_alloc_bytes","range":true,"refId":"A","step":5}],"title":"Memory Usage","type":"timeseries"},{"collapsed":false,"datasource":{"type":"prometheus","uid":"P11C5FC3F3B681947"},"gridPos":{"h":1,"w":24,"x":0,"y":8},"id":25,"panels":[],"targets":[{"datasource":{"type":"prometheus","uid":"P11C5FC3F3B681947"},"refId":"A"}],"title":"Clients","type":"row"},{"datasource":{"type":"prometheus","uid":"calico-demo-prometheus"},"fieldConfig":{"defaults":{"color":{"mode":"palette-classic"},"custom":{"axisBorderShow":false,"axisCenteredZero":false,"axisColorMode":"text","axisLabel":"","axisPlacement":"auto","barAlignment":0,"drawStyle":"line","fillOpacity":10,"gradientMode":"none","hideFrom":{"legend":false,"tooltip":false,"viz":false},"insertNulls":false,"lineInterpolation":"linear","lineWidth":1,"pointSize":5,"scaleDistribution":{"type":"linear"},"showPoints":"never","spanNulls":false,"stacking":{"group":"A","mode":"none"},"thresholdsStyle":{"mode":"off"}},"mappings":[],"thresholds":{"mode":"absolute","steps":[{"color":"green","value":null},{"color":"red","value":80}]},"unit":"short"},"overrides":[]},"gridPos":{"h":7,"w":4,"x":0,"y":9},"id":17,"options":{"legend":{"calcs":[],"displayMode":"list","placement":"bottom","showLegend":true},"tooltip":{"mode":"multi","sort":"none"}},"pluginVersion":"10.4.0","targets":[{"datasource":{"type":"prometheus","uid":"calico-demo-prometheus"},"editorMode":"code","expr":"rate(typha_connections_accepted[1m])","format":"time_series","intervalFactor":2,"legendFormat":"{{instance}}","range":true,"refId":"A","step":10}],"title":"Total connections accepted","type":"timeseries"},{"datasource":{"type":"prometheus","uid":"calico-demo-prometheus"},"fieldConfig":{"defaults":{"color":{"mode":"palette-classic"},"custom":{"axisBorderShow":false,"axisCenteredZero":false,"axisColorMode":"text","axisLabel":"","axisPlacement":"auto","barAlignment":0,"drawStyle":"line","fillOpacity":10,"gradientMode":"none","hideFrom":{"legend":false,"tooltip":false,"viz":false},"insertNulls":false,"lineInterpolation":"linear","lineWidth":1,"pointSize":5,"scaleDistribution":{"type":"linear"},"showPoints":"never","spanNulls":false,"stacking":{"group":"A","mode":"none"},"thresholdsStyle":{"mode":"off"}},"mappings":[],"thresholds":{"mode":"absolute","steps":[{"color":"green","value":null},{"color":"red","value":80}]},"unit":"short"},"overrides":[]},"gridPos":{"h":7,"w":4,"x":4,"y":9},"id":1,"options":{"legend":{"calcs":[],"displayMode":"list","placement":"bottom","showLegend":true},"tooltip":{"mode":"multi","sort":"none"}},"pluginVersion":"10.4.0","targets":[{"datasource":{"type":"prometheus","uid":"calico-demo-prometheus"},"editorMode":"code","expr":"sum by (instance) (typha_connections_streaming)","format":"time_series","interval":"2s","intervalFactor":2,"legendFormat":"{{pod}}","metric":"typha_connections_active","range":true,"refId":"A","step":5}],"title":"Client connections actively streaming","type":"timeseries"},{"datasource":{"type":"prometheus","uid":"calico-demo-prometheus"},"description":"Number of client connections dropped to rebalance load.","fieldConfig":{"defaults":{"color":{"mode":"palette-classic"},"custom":{"axisBorderShow":false,"axisCenteredZero":false,"axisColorMode":"text","axisLabel":"Number of dropped connections","axisPlacement":"auto","barAlignment":0,"drawStyle":"line","fillOpacity":10,"gradientMode":"none","hideFrom":{"legend":false,"tooltip":false,"viz":false},"insertNulls":false,"lineInterpolation":"linear","lineWidth":1,"pointSize":5,"scaleDistribution":{"type":"linear"},"showPoints":"never","spanNulls":false,"stacking":{"group":"A","mode":"none"},"thresholdsStyle":{"mode":"off"}},"mappings":[],"min":0,"thresholds":{"mode":"absolute","steps":[{"color":"green","value":null},{"color":"red","value":80}]},"unit":"short"},"overrides":[]},"gridPos":{"h":7,"w":4,"x":8,"y":9},"id":2,"options":{"legend":{"calcs":[],"displayMode":"list","placement":"bottom","showLegend":true},"tooltip":{"mode":"multi","sort":"none"}},"pluginVersion":"10.4.0","targets":[{"datasource":{"type":"prometheus","uid":"calico-demo-prometheus"},"editorMode":"code","expr":"rate(typha_connections_dropped[$__rate_interval])","format":"time_series","interval":"2s","intervalFactor":2,"legendFormat":"{{instance}}","metric":"typha_connections_dropped","range":true,"refId":"A","step":5}],"title":"Rebalanced client connenctions","type":"timeseries"},{"datasource":{"type":"prometheus","uid":"calico-demo-prometheus"},"description":"This metric measures how far behind Typha's clients are at reading updates.\nIt goes up if the client is slow or if Typha is overloaded and it cannot keep up with writes to all its clients.\nIt is normal for this to spike when new clients connect, they must download and process the snapshot, during which time they get slightly behind.","fieldConfig":{"defaults":{"color":{"mode":"palette-classic"},"custom":{"axisBorderShow":false,"axisCenteredZero":false,"axisColorMode":"text","axisLabel":"","axisPlacement":"auto","barAlignment":0,"drawStyle":"line","fillOpacity":10,"gradientMode":"none","hideFrom":{"legend":false,"tooltip":false,"viz":false},"insertNulls":false,"lineInterpolation":"linear","lineWidth":1,"pointSize":5,"scaleDistribution":{"type":"linear"},"showPoints":"never","spanNulls":false,"stacking":{"group":"A","mode":"none"},"thresholdsStyle":{"mode":"line+area"}},"mappings":[],"thresholds":{"mode":"absolute","steps":[{"color":"transparent","value":null},{"color":"#EAB839","value":10},{"color":"red","value":60}]},"unit":"s"},"overrides":[]},"gridPos":{"h":7,"w":4,"x":12,"y":9},"id":3,"options":{"legend":{"calcs":[],"displayMode":"list","placement":"bottom","showLegend":true},"tooltip":{"mode":"multi","sort":"none"}},"pluginVersion":"10.4.0","targets":[{"datasource":{"type":"prometheus","uid":"calico-demo-prometheus"},"editorMode":"code","expr":"max by (instance) (typha_client_latency_secs{quantile='0.99'})","format":"time_series","interval":"2s","intervalFactor":2,"legendFormat":"{{instance}}","metric":"typha_client_latency_secs_sum","range":true,"refId":"A","step":5}],"title":"99%ile Client fall-behind","type":"timeseries"},{"datasource":{"type":"prometheus","uid":"calico-demo-prometheus"},"fieldConfig":{"defaults":{"color":{"mode":"palette-classic"},"custom":{"axisBorderShow":false,"axisCenteredZero":false,"axisColorMode":"text","axisLabel":"","axisPlacement":"auto","barAlignment":0,"drawStyle":"line","fillOpacity":10,"gradientMode":"none","hideFrom":{"legend":false,"tooltip":false,"viz":false},"insertNulls":false,"lineInterpolation":"linear","lineWidth":1,"pointSize":5,"scaleDistribution":{"type":"linear"},"showPoints":"never","spanNulls":false,"stacking":{"group":"A","mode":"none"},"thresholdsStyle":{"mode":"off"}},"mappings":[],"thresholds":{"mode":"absolute","steps":[{"color":"green","value":null},{"color":"red","value":80}]},"unit":"s"},"overrides":[]},"gridPos":{"h":7,"w":4,"x":16,"y":9},"id":22,"options":{"legend":{"calcs":[],"displayMode":"list","placement":"bottom","showLegend":true},"tooltip":{"mode":"multi","sort":"none"}},"pluginVersion":"10.4.0","targets":[{"datasource":{"type":"prometheus","uid":"calico-demo-prometheus"},"editorMode":"code","expr":"max by (instance) (typha_client_write_latency_secs)","format":"time_series","intervalFactor":2,"legendFormat":"{{instance}}","range":true,"refId":"A","step":10}],"title":"99%ile write latency","type":"timeseries"},{"datasource":{"type":"prometheus","uid":"calico-demo-prometheus"},"description":"This metric tracks how long it takes for Typha's clients to respond to pings over the Typha protocol.\nAn increase in this metric indicates that the clients, network or Typha are more heavily loaded.","fieldConfig":{"defaults":{"color":{"mode":"palette-classic"},"custom":{"axisBorderShow":false,"axisCenteredZero":false,"axisColorMode":"text","axisLabel":"","axisPlacement":"auto","barAlignment":0,"drawStyle":"line","fillOpacity":10,"gradientMode":"none","hideFrom":{"legend":false,"tooltip":false,"viz":false},"insertNulls":false,"lineInterpolation":"linear","lineWidth":1,"pointSize":5,"scaleDistribution":{"type":"linear"},"showPoints":"never","spanNulls":false,"stacking":{"group":"A","mode":"none"},"thresholdsStyle":{"mode":"line+area"}},"mappings":[],"thresholds":{"mode":"absolute","steps":[{"color":"transparent","value":null},{"color":"red","value":1}]},"unit":"s"},"overrides":[]},"gridPos":{"h":7,"w":4,"x":20,"y":9},"id":13,"options":{"legend":{"calcs":[],"displayMode":"list","placement":"bottom","showLegend":true},"tooltip":{"mode":"multi","sort":"none"}},"pluginVersion":"10.4.0","targets":[{"datasource":{"type":"prometheus","uid":"calico-demo-prometheus"},"editorMode":"code","expr":"max by (instance) (typha_ping_latency{quantile=\"0.99\"})","format":"time_series","intervalFactor":2,"legendFormat":"{{instance}}","range":true,"refId":"A","step":10}],"title":"99%ile client ping latency","type":"timeseries"},{"collapsed":false,"datasource":{"type":"prometheus","uid":"P11C5FC3F3B681947"},"gridPos":{"h":1,"w":24,"x":0,"y":16},"id":26,"panels":[],"targets":[{"datasource":{"type":"prometheus","uid":"P11C5FC3F3B681947"},"refId":"A"}],"title":"Cache internals","type":"row"},{"datasource":{"type":"prometheus","uid":"calico-demo-prometheus"},"description":"Internally, Typha stores datastore changes as a series of blocks called breadcrumbs.\nThe default maximum size of a block is 100 so, if Typha is consistently generating size-100 blocks it may be overloaded.","fieldConfig":{"defaults":{"color":{"mode":"palette-classic"},"custom":{"axisBorderShow":false,"axisCenteredZero":false,"axisColorMode":"text","axisLabel":"","axisPlacement":"auto","barAlignment":0,"drawStyle":"line","fillOpacity":10,"gradientMode":"none","hideFrom":{"legend":false,"tooltip":false,"viz":false},"insertNulls":false,"lineInterpolation":"linear","lineWidth":1,"pointSize":5,"scaleDistribution":{"type":"linear"},"showPoints":"never","spanNulls":true,"stacking":{"group":"A","mode":"none"},"thresholdsStyle":{"mode":"line+area"}},"mappings":[],"max":110,"min":0,"thresholds":{"mode":"absolute","steps":[{"color":"transparent","value":null},{"color":"red","value":95}]},"unit":"short"},"overrides":[]},"gridPos":{"h":10,"w":6,"x":0,"y":17},"id":9,"options":{"legend":{"calcs":[],"displayMode":"list","placement":"bottom","showLegend":true},"tooltip":{"mode":"multi","sort":"none"}},"pluginVersion":"10.4.0","targets":[{"datasource":{"type":"prometheus","uid":"calico-demo-prometheus"},"editorMode":"code","expr":"max by (instance) (typha_breadcrumb_size{quantile=\"0.99\"})","format":"time_series","interval":"1s","intervalFactor":2,"legendFormat":"{{instance}} ","range":true,"refId":"A","step":5}],"title":"99%ile Breadcrumb Size","type":"timeseries"},{"datasource":{"type":"prometheus","uid":"calico-demo-prometheus"},"description":"Internally, Typha stores datastore changes as a series of blocks called \"breadcrumbs\".\nEach client \"follows the breadcrumbs\" either by blocking and waiting or skipping straight to the next one (non-blocking) if it is already available.\nAs load on Typha increases, the ratio of skip ahead non-blocking reads increases.  If it approaches 100% then Typha may be overloaded (since clients only do non-blocking reads when they're behind).","fieldConfig":{"defaults":{"color":{"mode":"palette-classic"},"custom":{"axisBorderShow":false,"axisCenteredZero":false,"axisColorMode":"text","axisLabel":"","axisPlacement":"auto","barAlignment":0,"drawStyle":"line","fillOpacity":10,"gradientMode":"none","hideFrom":{"legend":false,"tooltip":false,"viz":false},"insertNulls":false,"lineInterpolation":"linear","lineWidth":1,"pointSize":5,"scaleDistribution":{"type":"linear"},"showPoints":"never","spanNulls":true,"stacking":{"group":"A","mode":"none"},"thresholdsStyle":{"mode":"line+area"}},"mappings":[],"max":1.1,"thresholds":{"mode":"absolute","steps":[{"color":"transparent","value":null},{"color":"#EAB839","value":0.9},{"color":"red","value":1}]},"unit":"percentunit"},"overrides":[]},"gridPos":{"h":10,"w":6,"x":6,"y":17},"id":8,"options":{"legend":{"calcs":[],"displayMode":"list","placement":"bottom","showLegend":true},"tooltip":{"mode":"multi","sort":"none"}},"pluginVersion":"10.4.0","targets":[{"datasource":{"type":"prometheus","uid":"calico-demo-prometheus"},"editorMode":"code","expr":"(sum by (instance) (rate(typha_breadcrumb_non_block[30s])))/((sum by (instance) (rate(typha_breadcrumb_non_block[30s])))+(sum by (instance) (rate(typha_breadcrumb_block[30s]))))","format":"time_series","interval":"1s","intervalFactor":2,"legendFormat":"{{instance}}","range":true,"refId":"A","step":5}],"title":"Non-blocking breadcrumb fraction","type":"timeseries"},{"datasource":{"type":"prometheus","uid":"calico-demo-prometheus"},"description":"This panel shows the rate of updates from the datastore(s).\nFor example, updates to Pods/Nodes/Policies/etc.","fieldConfig":{"defaults":{"color":{"mode":"palette-classic"},"custom":{"axisBorderShow":false,"axisCenteredZero":false,"axisColorMode":"text","axisLabel":"","axisPlacement":"auto","barAlignment":0,"drawStyle":"line","fillOpacity":10,"gradientMode":"none","hideFrom":{"legend":false,"tooltip":false,"viz":false},"insertNulls":false,"lineInterpolation":"linear","lineWidth":1,"pointSize":5,"scaleDistribution":{"type":"linear"},"showPoints":"never","spanNulls":false,"stacking":{"group":"A","mode":"none"},"thresholdsStyle":{"mode":"off"}},"mappings":[],"thresholds":{"mode":"absolute","steps":[{"color":"green","value":null},{"color":"red","value":80}]},"unit":"short"},"overrides":[]},"gridPos":{"h":10,"w":6,"x":12,"y":17},"id":15,"options":{"legend":{"calcs":[],"displayMode":"list","placement":"bottom","showLegend":true},"tooltip":{"mode":"multi","sort":"none"}},"pluginVersion":"10.4.0","targets":[{"datasource":{"type":"prometheus","uid":"calico-demo-prometheus"},"editorMode":"code","expr":"sum by (instance) (rate(typha_updates_total[$__rate_interval]))","format":"time_series","intervalFactor":2,"legendFormat":"{{instance}}","range":true,"refId":"A","step":10}],"title":"Datastore updates total","type":"timeseries"},{"datasource":{"type":"prometheus","uid":"calico-demo-prometheus"},"description":"This panel shows the number of updates from the datastore that Typha detected were no-ops.\nFor example, an update to a Kubernetes Node resource that didn't touch any values that Calico cares about.\nSuch updates are not propagated to clients, saving resources.","fieldConfig":{"defaults":{"color":{"mode":"palette-classic"},"custom":{"axisBorderShow":false,"axisCenteredZero":false,"axisColorMode":"text","axisLabel":"","axisPlacement":"auto","barAlignment":0,"drawStyle":"line","fillOpacity":10,"gradientMode":"none","hideFrom":{"legend":false,"tooltip":false,"viz":false},"insertNulls":false,"lineInterpolation":"linear","lineWidth":1,"pointSize":5,"scaleDistribution":{"type":"linear"},"showPoints":"never","spanNulls":false,"stacking":{"group":"A","mode":"none"},"thresholdsStyle":{"mode":"off"}},"mappings":[],"thresholds":{"mode":"absolute","steps":[{"color":"green","value":null},{"color":"#EAB839","value":""}]},"unit":"short"},"overrides":[]},"gridPos":{"h":10,"w":6,"x":18,"y":17},"id":16,"options":{"legend":{"calcs":[],"displayMode":"list","placement":"bottom","showLegend":true},"tooltip":{"mode":"multi","sort":"none"}},"pluginVersion":"10.4.0","targets":[{"datasource":{"type":"prometheus","uid":"calico-demo-prometheus"},"editorMode":"code","expr":"sum by (instance) (rate(typha_updates_skipped[$__rate_interval]))","format":"time_series","intervalFactor":2,"legendFormat":"{{instance}}","range":true,"refId":"B","step":10}],"title":"Datastore updates skipped as no-ops","type":"timeseries"},{"collapsed":false,"datasource":{"type":"prometheus","uid":"P11C5FC3F3B681947"},"gridPos":{"h":1,"w":24,"x":0,"y":27},"id":27,"panels":[],"targets":[{"datasource":{"type":"prometheus","uid":"P11C5FC3F3B681947"},"refId":"A"}],"title":"Snapshot details","type":"row"},{"datasource":{"type":"prometheus","uid":"calico-demo-prometheus"},"description":"This panel shows the 99%ile time to stream the initial datastore snapshot to each clients.","fieldConfig":{"defaults":{"color":{"mode":"palette-classic"},"custom":{"axisBorderShow":false,"axisCenteredZero":false,"axisColorMode":"text","axisLabel":"","axisPlacement":"auto","barAlignment":0,"drawStyle":"line","fillOpacity":10,"gradientMode":"none","hideFrom":{"legend":false,"tooltip":false,"viz":false},"insertNulls":false,"lineInterpolation":"linear","lineWidth":1,"pointSize":5,"scaleDistribution":{"type":"linear"},"showPoints":"never","spanNulls":false,"stacking":{"group":"A","mode":"none"},"thresholdsStyle":{"mode":"off"}},"mappings":[],"min":0,"thresholds":{"mode":"absolute","steps":[{"color":"green","value":null},{"color":"red","value":80}]},"unit":"s"},"overrides":[]},"gridPos":{"h":9,"w":6,"x":0,"y":28},"id":12,"options":{"legend":{"calcs":[],"displayMode":"list","placement":"bottom","showLegend":true},"tooltip":{"mode":"multi","sort":"none"}},"pluginVersion":"10.4.0","targets":[{"datasource":{"type":"prometheus","uid":"calico-demo-prometheus"},"editorMode":"code","expr":"max by (instance) (typha_client_snapshot_send_secs{quantile=\"0.5\"})","format":"time_series","intervalFactor":2,"legendFormat":"{{instance}}","range":true,"refId":"A","step":10}],"title":"Median snapshot send time","type":"timeseries"},{"datasource":{"type":"prometheus","uid":"calico-demo-prometheus"},"description":"After sending the snapshot to the client, Typha allows a grace period for the client to catch up to the most recent data.\nThis metric tracks how many clients required the grace period.","fieldConfig":{"defaults":{"color":{"mode":"palette-classic"},"custom":{"axisBorderShow":false,"axisCenteredZero":false,"axisColorMode":"text","axisLabel":"","axisPlacement":"auto","barAlignment":0,"drawStyle":"line","fillOpacity":10,"gradientMode":"none","hideFrom":{"legend":false,"tooltip":false,"viz":false},"insertNulls":false,"lineInterpolation":"linear","lineWidth":1,"pointSize":5,"scaleDistribution":{"type":"linear"},"showPoints":"never","spanNulls":false,"stacking":{"group":"A","mode":"none"},"thresholdsStyle":{"mode":"off"}},"mappings":[],"min":0,"thresholds":{"mode":"absolute","steps":[{"color":"green","value":null},{"color":"red","value":80}]},"unit":"short"},"overrides":[]},"gridPos":{"h":9,"w":6,"x":6,"y":28},"id":21,"options":{"legend":{"calcs":[],"displayMode":"list","placement":"bottom","showLegend":true},"tooltip":{"mode":"multi","sort":"none"}},"pluginVersion":"10.4.0","targets":[{"datasource":{"type":"prometheus","uid":"calico-demo-prometheus"},"editorMode":"code","expr":"sum by (instance) (typha_connections_grace_used)","format":"time_series","intervalFactor":2,"legendFormat":"{{instance}}","range":true,"refId":"A","step":10}],"title":"Clients requiring grace period","type":"timeseries"},{"datasource":{"type":"prometheus","uid":"calico-demo-prometheus"},"fieldConfig":{"defaults":{"color":{"mode":"thresholds"},"mappings":[{"options":{"match":"null","result":{"text":"N/A"}},"type":"special"}],"thresholds":{"mode":"absolute","steps":[{"color":"green","value":null},{"color":"red","value":80}]},"unit":"bytes"},"overrides":[]},"gridPos":{"h":8,"w":6,"x":12,"y":28},"id":18,"maxDataPoints":100,"options":{"colorMode":"none","graphMode":"none","justifyMode":"auto","orientation":"horizontal","reduceOptions":{"calcs":["lastNotNull"],"fields":"","values":false},"showPercentChange":false,"textMode":"auto","wideLayout":true},"pluginVersion":"10.4.0","targets":[{"datasource":{"type":"prometheus","uid":"calico-demo-prometheus"},"editorMode":"code","expr":"max(typha_snapshot_raw_bytes)","format":"time_series","intervalFactor":2,"legendFormat":"","range":true,"refId":"A","step":40}],"title":"Max snapshot size (raw)","type":"stat"},{"datasource":{"type":"prometheus","uid":"calico-demo-prometheus"},"fieldConfig":{"defaults":{"color":{"mode":"thresholds"},"mappings":[{"options":{"match":"null","result":{"text":"N/A"}},"type":"special"}],"thresholds":{"mode":"absolute","steps":[{"color":"green","value":null},{"color":"red","value":80}]},"unit":"bytes"},"overrides":[]},"gridPos":{"h":8,"w":6,"x":18,"y":28},"id":19,"maxDataPoints":100,"options":{"colorMode":"none","graphMode":"none","justifyMode":"auto","orientation":"horizontal","reduceOptions":{"calcs":["lastNotNull"],"fields":"","values":false},"showPercentChange":false,"textMode":"auto","wideLayout":true},"pluginVersion":"10.4.0","targets":[{"datasource":{"type":"prometheus","uid":"calico-demo-prometheus"},"editorMode":"code","expr":"max(typha_snapshot_compressed_bytes)","format":"time_series","intervalFactor":2,"legendFormat":"","range":true,"refId":"A","step":40}],"title":"Max snapshot size (compressed)","type":"stat"}],"refresh":"","schemaVersion":39,"tags":[],"templating":{"list":[]},"time":{"from":"now-30m","to":"now"},"timepicker":{"refresh_intervals":["5s","10s","30s","1m","5m","15m","30m","1h","2h","1d"],"time_options":["5m","15m","1h","6h","12h","24h","2d","7d","30d"]},"timezone":"browser","title":"Calico Typha","uid":"calico-typha-dashboard","version":7,"weekStart":""}
    