From d1b8e518716c887ba75029848f710866a086820e Mon Sep 17 00:00:00 2001 From: Gilles De Mey Date: Tue, 24 May 2022 15:45:10 +0200 Subject: [PATCH 001/103] Alerting: Make alertmanager datasource stable (#49485) (#49491) (cherry picked from commit 86871807d27a155e044d7c6fb6608efdc2f2974e) --- pkg/tests/api/plugins/data/expectedListResp.json | 2 +- public/app/plugins/datasource/alertmanager/plugin.json | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/pkg/tests/api/plugins/data/expectedListResp.json b/pkg/tests/api/plugins/data/expectedListResp.json index 0669cb89090..08430c69ebf 100644 --- a/pkg/tests/api/plugins/data/expectedListResp.json +++ b/pkg/tests/api/plugins/data/expectedListResp.json @@ -1 +1 @@ -[{"name":"Alert list","type":"panel","id":"alertlist","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Shows list of alerts and their current status","links":null,"logos":{"small":"public/app/plugins/panel/alertlist/img/icn-singlestat-panel.svg","large":"public/app/plugins/panel/alertlist/img/icn-singlestat-panel.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/alertlist/","category":"","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Annotations list","type":"panel","id":"annolist","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"List annotations","links":null,"logos":{"small":"public/app/plugins/panel/annolist/img/icn-annolist-panel.svg","large":"public/app/plugins/panel/annolist/img/icn-annolist-panel.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/annolist/","category":"","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Azure Monitor","type":"datasource","id":"grafana-azure-monitor-datasource","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Data source for Microsoft Azure Monitor \u0026 Application Insights","links":[{"name":"Learn more","url":"https://grafana.com/docs/grafana/latest/datasources/azuremonitor/"},{"name":"Apache License","url":"https://github.com/grafana/azure-monitor-datasource/blob/master/LICENSE"}],"logos":{"small":"public/app/plugins/datasource/grafana-azure-monitor-datasource/img/logo.jpg","large":"public/app/plugins/datasource/grafana-azure-monitor-datasource/img/logo.jpg"},"build":{},"screenshots":[{"name":"Azure Contoso Loans","path":"public/app/plugins/datasource/grafana-azure-monitor-datasource/img/contoso_loans_grafana_dashboard.png"},{"name":"Azure Monitor Network","path":"public/app/plugins/datasource/grafana-azure-monitor-datasource/img/azure_monitor_network.png"},{"name":"Azure Monitor CPU","path":"public/app/plugins/datasource/grafana-azure-monitor-datasource/img/azure_monitor_cpu.png"}],"version":"1.0.0","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"5.2.x","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/grafana-azure-monitor-datasource/","category":"cloud","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Bar chart","type":"panel","id":"barchart","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Categorical charts with group support","links":null,"logos":{"small":"public/app/plugins/panel/barchart/img/barchart.svg","large":"public/app/plugins/panel/barchart/img/barchart.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/barchart/","category":"","state":"beta","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Bar gauge","type":"panel","id":"bargauge","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Horizontal and vertical gauges","links":null,"logos":{"small":"public/app/plugins/panel/bargauge/img/icon_bar_gauge.svg","large":"public/app/plugins/panel/bargauge/img/icon_bar_gauge.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/bargauge/","category":"","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Candlestick","type":"panel","id":"candlestick","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"","links":null,"logos":{"small":"public/app/plugins/panel/candlestick/img/candlestick.svg","large":"public/app/plugins/panel/candlestick/img/candlestick.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/candlestick/","category":"","state":"beta","signature":"internal","signatureType":"","signatureOrg":""},{"name":"CloudWatch","type":"datasource","id":"cloudwatch","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Data source for Amazon AWS monitoring service","links":null,"logos":{"small":"public/app/plugins/datasource/cloudwatch/img/amazon-web-services.png","large":"public/app/plugins/datasource/cloudwatch/img/amazon-web-services.png"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/cloudwatch/","category":"cloud","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Dashboard list","type":"panel","id":"dashlist","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"List of dynamic links to other dashboards","links":null,"logos":{"small":"public/app/plugins/panel/dashlist/img/icn-dashlist-panel.svg","large":"public/app/plugins/panel/dashlist/img/icn-dashlist-panel.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/dashlist/","category":"","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Elasticsearch","type":"datasource","id":"elasticsearch","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Open source logging \u0026 analytics database","links":[{"name":"Learn more","url":"https://grafana.com/docs/features/datasources/elasticsearch/"}],"logos":{"small":"public/app/plugins/datasource/elasticsearch/img/elasticsearch.svg","large":"public/app/plugins/datasource/elasticsearch/img/elasticsearch.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/elasticsearch/","category":"logging","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Gauge","type":"panel","id":"gauge","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Standard gauge visualization","links":null,"logos":{"small":"public/app/plugins/panel/gauge/img/icon_gauge.svg","large":"public/app/plugins/panel/gauge/img/icon_gauge.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/gauge/","category":"","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Geomap","type":"panel","id":"geomap","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Geomap panel","links":null,"logos":{"small":"public/app/plugins/panel/geomap/img/icn-geomap.svg","large":"public/app/plugins/panel/geomap/img/icn-geomap.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/geomap/","category":"","state":"beta","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Getting Started","type":"panel","id":"gettingstarted","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"","links":null,"logos":{"small":"public/app/plugins/panel/gettingstarted/img/icn-dashlist-panel.svg","large":"public/app/plugins/panel/gettingstarted/img/icn-dashlist-panel.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/gettingstarted/","category":"","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Google Cloud Monitoring","type":"datasource","id":"stackdriver","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Data source for Google's monitoring service (formerly named Stackdriver)","links":null,"logos":{"small":"public/app/plugins/datasource/cloud-monitoring/img/cloud_monitoring_logo.svg","large":"public/app/plugins/datasource/cloud-monitoring/img/cloud_monitoring_logo.svg"},"build":{},"screenshots":null,"version":"1.0.0","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/stackdriver/","category":"cloud","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Graph (old)","type":"panel","id":"graph","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"The old default graph panel","links":null,"logos":{"small":"public/app/plugins/panel/graph/img/icn-graph-panel.svg","large":"public/app/plugins/panel/graph/img/icn-graph-panel.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/graph/","category":"","state":"deprecated","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Graphite","type":"datasource","id":"graphite","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Open source time series database","links":[{"name":"Learn more","url":"https://graphiteapp.org/"},{"name":"Graphite 1.1 Release","url":"https://grafana.com/blog/2018/01/11/graphite-1.1-teaching-an-old-dog-new-tricks/"}],"logos":{"small":"public/app/plugins/datasource/graphite/img/graphite_logo.png","large":"public/app/plugins/datasource/graphite/img/graphite_logo.png"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/graphite/","category":"tsdb","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Heatmap","type":"panel","id":"heatmap","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Like a histogram over time","links":[{"name":"Brendan Gregg - Heatmaps","url":"http://www.brendangregg.com/heatmaps.html"},{"name":"Brendan Gregg - Latency Heatmaps","url":" http://www.brendangregg.com/HeatMaps/latency.html"}],"logos":{"small":"public/app/plugins/panel/heatmap/img/icn-heatmap-panel.svg","large":"public/app/plugins/panel/heatmap/img/icn-heatmap-panel.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/heatmap/","category":"","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Histogram","type":"panel","id":"histogram","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"","links":null,"logos":{"small":"public/app/plugins/panel/histogram/img/histogram.svg","large":"public/app/plugins/panel/histogram/img/histogram.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/histogram/","category":"","state":"beta","signature":"internal","signatureType":"","signatureOrg":""},{"name":"InfluxDB","type":"datasource","id":"influxdb","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Open source time series database","links":null,"logos":{"small":"public/app/plugins/datasource/influxdb/img/influxdb_logo.svg","large":"public/app/plugins/datasource/influxdb/img/influxdb_logo.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/influxdb/","category":"tsdb","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Jaeger","type":"datasource","id":"jaeger","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Open source, end-to-end distributed tracing","links":[{"name":"Learn more","url":"https://www.jaegertracing.io"},{"name":"GitHub Project","url":"https://github.com/jaegertracing/jaeger"}],"logos":{"small":"public/app/plugins/datasource/jaeger/img/jaeger_logo.svg","large":"public/app/plugins/datasource/jaeger/img/jaeger_logo.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/jaeger/","category":"tracing","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Logs","type":"panel","id":"logs","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"","links":null,"logos":{"small":"public/app/plugins/panel/logs/img/icn-logs-panel.svg","large":"public/app/plugins/panel/logs/img/icn-logs-panel.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/logs/","category":"","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Loki","type":"datasource","id":"loki","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Like Prometheus but for logs. OSS logging solution from Grafana Labs","links":[{"name":"Learn more","url":"https://grafana.com/loki"},{"name":"GitHub Project","url":"https://github.com/grafana/loki"}],"logos":{"small":"public/app/plugins/datasource/loki/img/loki_icon.svg","large":"public/app/plugins/datasource/loki/img/loki_icon.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/loki/","category":"logging","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Microsoft SQL Server","type":"datasource","id":"mssql","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Data source for Microsoft SQL Server compatible databases","links":null,"logos":{"small":"public/app/plugins/datasource/mssql/img/sql_server_logo.svg","large":"public/app/plugins/datasource/mssql/img/sql_server_logo.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/mssql/","category":"sql","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"MySQL","type":"datasource","id":"mysql","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Data source for MySQL databases","links":null,"logos":{"small":"public/app/plugins/datasource/mysql/img/mysql_logo.svg","large":"public/app/plugins/datasource/mysql/img/mysql_logo.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/mysql/","category":"sql","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"News","type":"panel","id":"news","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"RSS feed reader","links":null,"logos":{"small":"public/app/plugins/panel/news/img/news.svg","large":"public/app/plugins/panel/news/img/news.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/news/","category":"","state":"beta","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Node Graph","type":"panel","id":"nodeGraph","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"","links":null,"logos":{"small":"public/app/plugins/panel/nodeGraph/img/icn-node-graph.svg","large":"public/app/plugins/panel/nodeGraph/img/icn-node-graph.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/nodeGraph/","category":"","state":"beta","signature":"internal","signatureType":"","signatureOrg":""},{"name":"OpenTSDB","type":"datasource","id":"opentsdb","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Open source time series database","links":null,"logos":{"small":"public/app/plugins/datasource/opentsdb/img/opentsdb_logo.png","large":"public/app/plugins/datasource/opentsdb/img/opentsdb_logo.png"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/opentsdb/","category":"tsdb","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Pie chart","type":"panel","id":"piechart","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"The new core pie chart visualization","links":null,"logos":{"small":"public/app/plugins/panel/piechart/img/icon_piechart.svg","large":"public/app/plugins/panel/piechart/img/icon_piechart.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/piechart/","category":"","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"PostgreSQL","type":"datasource","id":"postgres","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Data source for PostgreSQL and compatible databases","links":null,"logos":{"small":"public/app/plugins/datasource/postgres/img/postgresql_logo.svg","large":"public/app/plugins/datasource/postgres/img/postgresql_logo.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/postgres/","category":"sql","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Prometheus","type":"datasource","id":"prometheus","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Open source time series database \u0026 alerting","links":[{"name":"Learn more","url":"https://prometheus.io/"}],"logos":{"small":"public/app/plugins/datasource/prometheus/img/prometheus_logo.svg","large":"public/app/plugins/datasource/prometheus/img/prometheus_logo.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/prometheus/","category":"tsdb","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Stat","type":"panel","id":"stat","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Big stat values \u0026 sparklines","links":null,"logos":{"small":"public/app/plugins/panel/stat/img/icn-singlestat-panel.svg","large":"public/app/plugins/panel/stat/img/icn-singlestat-panel.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/stat/","category":"","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"State timeline","type":"panel","id":"state-timeline","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"State changes and durations","links":null,"logos":{"small":"public/app/plugins/panel/state-timeline/img/timeline.svg","large":"public/app/plugins/panel/state-timeline/img/timeline.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/state-timeline/","category":"","state":"beta","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Status history","type":"panel","id":"status-history","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Periodic status history","links":null,"logos":{"small":"public/app/plugins/panel/status-history/img/status.svg","large":"public/app/plugins/panel/status-history/img/status.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/status-history/","category":"","state":"beta","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Table","type":"panel","id":"table","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Supports many column styles","links":null,"logos":{"small":"public/app/plugins/panel/table/img/icn-table-panel.svg","large":"public/app/plugins/panel/table/img/icn-table-panel.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/table/","category":"","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Table (old)","type":"panel","id":"table-old","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Table Panel for Grafana","links":null,"logos":{"small":"public/app/plugins/panel/table-old/img/icn-table-panel.svg","large":"public/app/plugins/panel/table-old/img/icn-table-panel.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/table-old/","category":"","state":"deprecated","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Tempo","type":"datasource","id":"tempo","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"High volume, minimal dependency trace storage. OSS tracing solution from Grafana Labs.","links":[{"name":"GitHub Project","url":"https://github.com/grafana/tempo"}],"logos":{"small":"public/app/plugins/datasource/tempo/img/tempo_logo.svg","large":"public/app/plugins/datasource/tempo/img/tempo_logo.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/tempo/","category":"tracing","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"TestData DB","type":"datasource","id":"testdata","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Generates test data in different forms","links":null,"logos":{"small":"public/app/plugins/datasource/testdata/img/testdata.svg","large":"public/app/plugins/datasource/testdata/img/testdata.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/testdata/","category":"","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Text","type":"panel","id":"text","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Supports markdown and html content","links":null,"logos":{"small":"public/app/plugins/panel/text/img/icn-text-panel.svg","large":"public/app/plugins/panel/text/img/icn-text-panel.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/text/","category":"","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Time series","type":"panel","id":"timeseries","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Time based line, area and bar charts","links":null,"logos":{"small":"public/app/plugins/panel/timeseries/img/icn-timeseries-panel.svg","large":"public/app/plugins/panel/timeseries/img/icn-timeseries-panel.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/timeseries/","category":"","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Traces","type":"panel","id":"traces","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"","links":null,"logos":{"small":"public/app/plugins/panel/traces/img/traces-panel.svg","large":"public/app/plugins/panel/traces/img/traces-panel.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/traces/","category":"","state":"beta","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Welcome","type":"panel","id":"welcome","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"","links":null,"logos":{"small":"public/app/plugins/panel/welcome/img/icn-dashlist-panel.svg","large":"public/app/plugins/panel/welcome/img/icn-dashlist-panel.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/welcome/","category":"","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Zipkin","type":"datasource","id":"zipkin","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Placeholder for the distributed tracing system.","links":[{"name":"Learn more","url":"https://zipkin.io"}],"logos":{"small":"public/app/plugins/datasource/zipkin/img/zipkin-logo.svg","large":"public/app/plugins/datasource/zipkin/img/zipkin-logo.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/zipkin/","category":"tracing","state":"","signature":"internal","signatureType":"","signatureOrg":""}] +[{"name":"Alert list","type":"panel","id":"alertlist","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Shows list of alerts and their current status","links":null,"logos":{"small":"public/app/plugins/panel/alertlist/img/icn-singlestat-panel.svg","large":"public/app/plugins/panel/alertlist/img/icn-singlestat-panel.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/alertlist/","category":"","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Alertmanager","type":"datasource","id":"alertmanager","enabled":true,"pinned":false,"info":{"author":{"name":"Prometheus alertmanager","url":"https://grafana.com"},"description":"","links":[{"name":"Learn more","url":"https://prometheus.io/docs/alerting/latest/alertmanager/"}],"logos":{"small":"public/app/plugins/datasource/alertmanager/img/logo.svg","large":"public/app/plugins/datasource/alertmanager/img/logo.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/alertmanager/","category":"","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Annotations list","type":"panel","id":"annolist","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"List annotations","links":null,"logos":{"small":"public/app/plugins/panel/annolist/img/icn-annolist-panel.svg","large":"public/app/plugins/panel/annolist/img/icn-annolist-panel.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/annolist/","category":"","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Azure Monitor","type":"datasource","id":"grafana-azure-monitor-datasource","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Data source for Microsoft Azure Monitor \u0026 Application Insights","links":[{"name":"Learn more","url":"https://grafana.com/docs/grafana/latest/datasources/azuremonitor/"},{"name":"Apache License","url":"https://github.com/grafana/azure-monitor-datasource/blob/master/LICENSE"}],"logos":{"small":"public/app/plugins/datasource/grafana-azure-monitor-datasource/img/logo.jpg","large":"public/app/plugins/datasource/grafana-azure-monitor-datasource/img/logo.jpg"},"build":{},"screenshots":[{"name":"Azure Contoso Loans","path":"public/app/plugins/datasource/grafana-azure-monitor-datasource/img/contoso_loans_grafana_dashboard.png"},{"name":"Azure Monitor Network","path":"public/app/plugins/datasource/grafana-azure-monitor-datasource/img/azure_monitor_network.png"},{"name":"Azure Monitor CPU","path":"public/app/plugins/datasource/grafana-azure-monitor-datasource/img/azure_monitor_cpu.png"}],"version":"1.0.0","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"5.2.x","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/grafana-azure-monitor-datasource/","category":"cloud","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Bar chart","type":"panel","id":"barchart","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Categorical charts with group support","links":null,"logos":{"small":"public/app/plugins/panel/barchart/img/barchart.svg","large":"public/app/plugins/panel/barchart/img/barchart.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/barchart/","category":"","state":"beta","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Bar gauge","type":"panel","id":"bargauge","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Horizontal and vertical gauges","links":null,"logos":{"small":"public/app/plugins/panel/bargauge/img/icon_bar_gauge.svg","large":"public/app/plugins/panel/bargauge/img/icon_bar_gauge.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/bargauge/","category":"","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Candlestick","type":"panel","id":"candlestick","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"","links":null,"logos":{"small":"public/app/plugins/panel/candlestick/img/candlestick.svg","large":"public/app/plugins/panel/candlestick/img/candlestick.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/candlestick/","category":"","state":"beta","signature":"internal","signatureType":"","signatureOrg":""},{"name":"CloudWatch","type":"datasource","id":"cloudwatch","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Data source for Amazon AWS monitoring service","links":null,"logos":{"small":"public/app/plugins/datasource/cloudwatch/img/amazon-web-services.png","large":"public/app/plugins/datasource/cloudwatch/img/amazon-web-services.png"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/cloudwatch/","category":"cloud","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Dashboard list","type":"panel","id":"dashlist","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"List of dynamic links to other dashboards","links":null,"logos":{"small":"public/app/plugins/panel/dashlist/img/icn-dashlist-panel.svg","large":"public/app/plugins/panel/dashlist/img/icn-dashlist-panel.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/dashlist/","category":"","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Elasticsearch","type":"datasource","id":"elasticsearch","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Open source logging \u0026 analytics database","links":[{"name":"Learn more","url":"https://grafana.com/docs/features/datasources/elasticsearch/"}],"logos":{"small":"public/app/plugins/datasource/elasticsearch/img/elasticsearch.svg","large":"public/app/plugins/datasource/elasticsearch/img/elasticsearch.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/elasticsearch/","category":"logging","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Gauge","type":"panel","id":"gauge","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Standard gauge visualization","links":null,"logos":{"small":"public/app/plugins/panel/gauge/img/icon_gauge.svg","large":"public/app/plugins/panel/gauge/img/icon_gauge.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/gauge/","category":"","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Geomap","type":"panel","id":"geomap","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Geomap panel","links":null,"logos":{"small":"public/app/plugins/panel/geomap/img/icn-geomap.svg","large":"public/app/plugins/panel/geomap/img/icn-geomap.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/geomap/","category":"","state":"beta","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Getting Started","type":"panel","id":"gettingstarted","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"","links":null,"logos":{"small":"public/app/plugins/panel/gettingstarted/img/icn-dashlist-panel.svg","large":"public/app/plugins/panel/gettingstarted/img/icn-dashlist-panel.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/gettingstarted/","category":"","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Google Cloud Monitoring","type":"datasource","id":"stackdriver","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Data source for Google's monitoring service (formerly named Stackdriver)","links":null,"logos":{"small":"public/app/plugins/datasource/cloud-monitoring/img/cloud_monitoring_logo.svg","large":"public/app/plugins/datasource/cloud-monitoring/img/cloud_monitoring_logo.svg"},"build":{},"screenshots":null,"version":"1.0.0","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/stackdriver/","category":"cloud","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Graph (old)","type":"panel","id":"graph","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"The old default graph panel","links":null,"logos":{"small":"public/app/plugins/panel/graph/img/icn-graph-panel.svg","large":"public/app/plugins/panel/graph/img/icn-graph-panel.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/graph/","category":"","state":"deprecated","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Graphite","type":"datasource","id":"graphite","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Open source time series database","links":[{"name":"Learn more","url":"https://graphiteapp.org/"},{"name":"Graphite 1.1 Release","url":"https://grafana.com/blog/2018/01/11/graphite-1.1-teaching-an-old-dog-new-tricks/"}],"logos":{"small":"public/app/plugins/datasource/graphite/img/graphite_logo.png","large":"public/app/plugins/datasource/graphite/img/graphite_logo.png"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/graphite/","category":"tsdb","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Heatmap","type":"panel","id":"heatmap","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Like a histogram over time","links":[{"name":"Brendan Gregg - Heatmaps","url":"http://www.brendangregg.com/heatmaps.html"},{"name":"Brendan Gregg - Latency Heatmaps","url":" http://www.brendangregg.com/HeatMaps/latency.html"}],"logos":{"small":"public/app/plugins/panel/heatmap/img/icn-heatmap-panel.svg","large":"public/app/plugins/panel/heatmap/img/icn-heatmap-panel.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/heatmap/","category":"","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Histogram","type":"panel","id":"histogram","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"","links":null,"logos":{"small":"public/app/plugins/panel/histogram/img/histogram.svg","large":"public/app/plugins/panel/histogram/img/histogram.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/histogram/","category":"","state":"beta","signature":"internal","signatureType":"","signatureOrg":""},{"name":"InfluxDB","type":"datasource","id":"influxdb","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Open source time series database","links":null,"logos":{"small":"public/app/plugins/datasource/influxdb/img/influxdb_logo.svg","large":"public/app/plugins/datasource/influxdb/img/influxdb_logo.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/influxdb/","category":"tsdb","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Jaeger","type":"datasource","id":"jaeger","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Open source, end-to-end distributed tracing","links":[{"name":"Learn more","url":"https://www.jaegertracing.io"},{"name":"GitHub Project","url":"https://github.com/jaegertracing/jaeger"}],"logos":{"small":"public/app/plugins/datasource/jaeger/img/jaeger_logo.svg","large":"public/app/plugins/datasource/jaeger/img/jaeger_logo.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/jaeger/","category":"tracing","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Logs","type":"panel","id":"logs","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"","links":null,"logos":{"small":"public/app/plugins/panel/logs/img/icn-logs-panel.svg","large":"public/app/plugins/panel/logs/img/icn-logs-panel.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/logs/","category":"","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Loki","type":"datasource","id":"loki","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Like Prometheus but for logs. OSS logging solution from Grafana Labs","links":[{"name":"Learn more","url":"https://grafana.com/loki"},{"name":"GitHub Project","url":"https://github.com/grafana/loki"}],"logos":{"small":"public/app/plugins/datasource/loki/img/loki_icon.svg","large":"public/app/plugins/datasource/loki/img/loki_icon.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/loki/","category":"logging","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Microsoft SQL Server","type":"datasource","id":"mssql","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Data source for Microsoft SQL Server compatible databases","links":null,"logos":{"small":"public/app/plugins/datasource/mssql/img/sql_server_logo.svg","large":"public/app/plugins/datasource/mssql/img/sql_server_logo.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/mssql/","category":"sql","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"MySQL","type":"datasource","id":"mysql","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Data source for MySQL databases","links":null,"logos":{"small":"public/app/plugins/datasource/mysql/img/mysql_logo.svg","large":"public/app/plugins/datasource/mysql/img/mysql_logo.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/mysql/","category":"sql","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"News","type":"panel","id":"news","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"RSS feed reader","links":null,"logos":{"small":"public/app/plugins/panel/news/img/news.svg","large":"public/app/plugins/panel/news/img/news.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/news/","category":"","state":"beta","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Node Graph","type":"panel","id":"nodeGraph","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"","links":null,"logos":{"small":"public/app/plugins/panel/nodeGraph/img/icn-node-graph.svg","large":"public/app/plugins/panel/nodeGraph/img/icn-node-graph.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/nodeGraph/","category":"","state":"beta","signature":"internal","signatureType":"","signatureOrg":""},{"name":"OpenTSDB","type":"datasource","id":"opentsdb","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Open source time series database","links":null,"logos":{"small":"public/app/plugins/datasource/opentsdb/img/opentsdb_logo.png","large":"public/app/plugins/datasource/opentsdb/img/opentsdb_logo.png"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/opentsdb/","category":"tsdb","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Pie chart","type":"panel","id":"piechart","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"The new core pie chart visualization","links":null,"logos":{"small":"public/app/plugins/panel/piechart/img/icon_piechart.svg","large":"public/app/plugins/panel/piechart/img/icon_piechart.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/piechart/","category":"","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"PostgreSQL","type":"datasource","id":"postgres","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Data source for PostgreSQL and compatible databases","links":null,"logos":{"small":"public/app/plugins/datasource/postgres/img/postgresql_logo.svg","large":"public/app/plugins/datasource/postgres/img/postgresql_logo.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/postgres/","category":"sql","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Prometheus","type":"datasource","id":"prometheus","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Open source time series database \u0026 alerting","links":[{"name":"Learn more","url":"https://prometheus.io/"}],"logos":{"small":"public/app/plugins/datasource/prometheus/img/prometheus_logo.svg","large":"public/app/plugins/datasource/prometheus/img/prometheus_logo.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/prometheus/","category":"tsdb","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Stat","type":"panel","id":"stat","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Big stat values \u0026 sparklines","links":null,"logos":{"small":"public/app/plugins/panel/stat/img/icn-singlestat-panel.svg","large":"public/app/plugins/panel/stat/img/icn-singlestat-panel.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/stat/","category":"","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"State timeline","type":"panel","id":"state-timeline","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"State changes and durations","links":null,"logos":{"small":"public/app/plugins/panel/state-timeline/img/timeline.svg","large":"public/app/plugins/panel/state-timeline/img/timeline.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/state-timeline/","category":"","state":"beta","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Status history","type":"panel","id":"status-history","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Periodic status history","links":null,"logos":{"small":"public/app/plugins/panel/status-history/img/status.svg","large":"public/app/plugins/panel/status-history/img/status.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/status-history/","category":"","state":"beta","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Table","type":"panel","id":"table","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Supports many column styles","links":null,"logos":{"small":"public/app/plugins/panel/table/img/icn-table-panel.svg","large":"public/app/plugins/panel/table/img/icn-table-panel.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/table/","category":"","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Table (old)","type":"panel","id":"table-old","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Table Panel for Grafana","links":null,"logos":{"small":"public/app/plugins/panel/table-old/img/icn-table-panel.svg","large":"public/app/plugins/panel/table-old/img/icn-table-panel.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/table-old/","category":"","state":"deprecated","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Tempo","type":"datasource","id":"tempo","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"High volume, minimal dependency trace storage. OSS tracing solution from Grafana Labs.","links":[{"name":"GitHub Project","url":"https://github.com/grafana/tempo"}],"logos":{"small":"public/app/plugins/datasource/tempo/img/tempo_logo.svg","large":"public/app/plugins/datasource/tempo/img/tempo_logo.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/tempo/","category":"tracing","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"TestData DB","type":"datasource","id":"testdata","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Generates test data in different forms","links":null,"logos":{"small":"public/app/plugins/datasource/testdata/img/testdata.svg","large":"public/app/plugins/datasource/testdata/img/testdata.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/testdata/","category":"","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Text","type":"panel","id":"text","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Supports markdown and html content","links":null,"logos":{"small":"public/app/plugins/panel/text/img/icn-text-panel.svg","large":"public/app/plugins/panel/text/img/icn-text-panel.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/text/","category":"","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Time series","type":"panel","id":"timeseries","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Time based line, area and bar charts","links":null,"logos":{"small":"public/app/plugins/panel/timeseries/img/icn-timeseries-panel.svg","large":"public/app/plugins/panel/timeseries/img/icn-timeseries-panel.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/timeseries/","category":"","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Traces","type":"panel","id":"traces","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"","links":null,"logos":{"small":"public/app/plugins/panel/traces/img/traces-panel.svg","large":"public/app/plugins/panel/traces/img/traces-panel.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/traces/","category":"","state":"beta","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Welcome","type":"panel","id":"welcome","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"","links":null,"logos":{"small":"public/app/plugins/panel/welcome/img/icn-dashlist-panel.svg","large":"public/app/plugins/panel/welcome/img/icn-dashlist-panel.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/welcome/","category":"","state":"","signature":"internal","signatureType":"","signatureOrg":""},{"name":"Zipkin","type":"datasource","id":"zipkin","enabled":true,"pinned":false,"info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Placeholder for the distributed tracing system.","links":[{"name":"Learn more","url":"https://zipkin.io"}],"logos":{"small":"public/app/plugins/datasource/zipkin/img/zipkin-logo.svg","large":"public/app/plugins/datasource/zipkin/img/zipkin-logo.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaDependency":"","grafanaVersion":"*","plugins":[]},"latestVersion":"","hasUpdate":false,"defaultNavUrl":"/plugins/zipkin/","category":"tracing","state":"","signature":"internal","signatureType":"","signatureOrg":""}] diff --git a/public/app/plugins/datasource/alertmanager/plugin.json b/public/app/plugins/datasource/alertmanager/plugin.json index d2cd0fe98d1..33a087f5365 100644 --- a/public/app/plugins/datasource/alertmanager/plugin.json +++ b/public/app/plugins/datasource/alertmanager/plugin.json @@ -3,7 +3,6 @@ "name": "Alertmanager", "id": "alertmanager", "metrics": false, - "state": "alpha", "routes": [ { "method": "POST", From 992d6aeed4f2dbbc7afbec8aa075ddfe8c6835e0 Mon Sep 17 00:00:00 2001 From: "Grot (@grafanabot)" <43478413+grafanabot@users.noreply.github.com> Date: Tue, 24 May 2022 10:06:14 -0400 Subject: [PATCH 002/103] "Release: Updated versions in package to 9.0.0-beta.1" (#49488) --- lerna.json | 6 ++- package.json | 2 +- packages/grafana-data/package.json | 4 +- packages/grafana-e2e-selectors/package.json | 2 +- packages/grafana-e2e/package.json | 4 +- packages/grafana-runtime/package.json | 8 ++-- packages/grafana-schema/package.json | 2 +- packages/grafana-toolkit/package.json | 6 +-- packages/grafana-ui/package.json | 8 ++-- packages/jaeger-ui-components/package.json | 8 ++-- .../internal/input-datasource/package.json | 8 ++-- yarn.lock | 42 +++++++++---------- 12 files changed, 51 insertions(+), 49 deletions(-) diff --git a/lerna.json b/lerna.json index 9a6406e5399..56b8d14068f 100644 --- a/lerna.json +++ b/lerna.json @@ -1,6 +1,8 @@ { "npmClient": "yarn", "useWorkspaces": true, - "packages": ["packages/*"], - "version": "9.0.0-pre" + "packages": [ + "packages/*" + ], + "version": "9.0.0-beta.1" } diff --git a/package.json b/package.json index 86cd1b81b21..c8ed7d144a1 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "license": "AGPL-3.0-only", "private": true, "name": "grafana", - "version": "9.0.0-pre", + "version": "9.0.0-beta.1", "repository": "github:grafana/grafana", "scripts": { "api-tests": "jest --notify --watch --config=devenv/e2e-api-tests/jest.js", diff --git a/packages/grafana-data/package.json b/packages/grafana-data/package.json index c146bd84cbe..e730ac53804 100644 --- a/packages/grafana-data/package.json +++ b/packages/grafana-data/package.json @@ -2,7 +2,7 @@ "author": "Grafana Labs", "license": "Apache-2.0", "name": "@grafana/data", - "version": "9.0.0-pre", + "version": "9.0.0-beta.1", "description": "Grafana Data Library", "keywords": [ "typescript" @@ -22,7 +22,7 @@ }, "dependencies": { "@braintree/sanitize-url": "6.0.0", - "@grafana/schema": "9.0.0-pre", + "@grafana/schema": "9.0.0-beta.1", "@types/d3-interpolate": "^1.4.0", "d3-interpolate": "1.4.0", "date-fns": "2.28.0", diff --git a/packages/grafana-e2e-selectors/package.json b/packages/grafana-e2e-selectors/package.json index 4275ec21598..88c7dc933a5 100644 --- a/packages/grafana-e2e-selectors/package.json +++ b/packages/grafana-e2e-selectors/package.json @@ -2,7 +2,7 @@ "author": "Grafana Labs", "license": "Apache-2.0", "name": "@grafana/e2e-selectors", - "version": "9.0.0-pre", + "version": "9.0.0-beta.1", "description": "Grafana End-to-End Test Selectors Library", "keywords": [ "cli", diff --git a/packages/grafana-e2e/package.json b/packages/grafana-e2e/package.json index c3a3a2b6216..e358b03e99e 100644 --- a/packages/grafana-e2e/package.json +++ b/packages/grafana-e2e/package.json @@ -2,7 +2,7 @@ "author": "Grafana Labs", "license": "Apache-2.0", "name": "@grafana/e2e", - "version": "9.0.0-pre", + "version": "9.0.0-beta.1", "description": "Grafana End-to-End Test Library", "keywords": [ "cli", @@ -48,7 +48,7 @@ "@babel/core": "7.17.8", "@babel/preset-env": "7.17.10", "@cypress/webpack-preprocessor": "5.11.1", - "@grafana/e2e-selectors": "9.0.0-pre", + "@grafana/e2e-selectors": "9.0.0-beta.1", "@grafana/tsconfig": "^1.2.0-rc1", "@mochajs/json-file-reporter": "^1.2.0", "babel-loader": "8.2.5", diff --git a/packages/grafana-runtime/package.json b/packages/grafana-runtime/package.json index a5031704fcf..8c9d0934497 100644 --- a/packages/grafana-runtime/package.json +++ b/packages/grafana-runtime/package.json @@ -2,7 +2,7 @@ "author": "Grafana Labs", "license": "Apache-2.0", "name": "@grafana/runtime", - "version": "9.0.0-pre", + "version": "9.0.0-beta.1", "description": "Grafana Runtime Library", "keywords": [ "grafana", @@ -22,9 +22,9 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@grafana/data": "9.0.0-pre", - "@grafana/e2e-selectors": "9.0.0-pre", - "@grafana/ui": "9.0.0-pre", + "@grafana/data": "9.0.0-beta.1", + "@grafana/e2e-selectors": "9.0.0-beta.1", + "@grafana/ui": "9.0.0-beta.1", "@sentry/browser": "6.19.7", "history": "4.10.1", "lodash": "4.17.21", diff --git a/packages/grafana-schema/package.json b/packages/grafana-schema/package.json index 2d85d3bea1c..2829323c8c0 100644 --- a/packages/grafana-schema/package.json +++ b/packages/grafana-schema/package.json @@ -2,7 +2,7 @@ "author": "Grafana Labs", "license": "Apache-2.0", "name": "@grafana/schema", - "version": "9.0.0-pre", + "version": "9.0.0-beta.1", "description": "Grafana Schema Library", "keywords": [ "typescript" diff --git a/packages/grafana-toolkit/package.json b/packages/grafana-toolkit/package.json index d0888482471..622fee2cc0a 100644 --- a/packages/grafana-toolkit/package.json +++ b/packages/grafana-toolkit/package.json @@ -2,7 +2,7 @@ "author": "Grafana Labs", "license": "Apache-2.0", "name": "@grafana/toolkit", - "version": "9.0.0-pre", + "version": "9.0.0-beta.1", "description": "Grafana Toolkit", "keywords": [ "grafana", @@ -28,10 +28,10 @@ "dependencies": { "@babel/core": "7.13.14", "@babel/preset-env": "7.13.12", - "@grafana/data": "9.0.0-pre", + "@grafana/data": "9.0.0-beta.1", "@grafana/eslint-config": "2.5.2", "@grafana/tsconfig": "^1.2.0-rc1", - "@grafana/ui": "9.0.0-pre", + "@grafana/ui": "9.0.0-beta.1", "@jest/core": "26.6.3", "@rushstack/eslint-patch": "1.0.6", "@types/command-exists": "^1.2.0", diff --git a/packages/grafana-ui/package.json b/packages/grafana-ui/package.json index 6c7cf6ef5e2..306625e0ae8 100644 --- a/packages/grafana-ui/package.json +++ b/packages/grafana-ui/package.json @@ -2,7 +2,7 @@ "author": "Grafana Labs", "license": "Apache-2.0", "name": "@grafana/ui", - "version": "9.0.0-pre", + "version": "9.0.0-beta.1", "description": "Grafana Components Library", "keywords": [ "grafana", @@ -33,9 +33,9 @@ "@emotion/css": "11.9.0", "@emotion/react": "11.9.0", "@grafana/aws-sdk": "0.0.36", - "@grafana/data": "9.0.0-pre", - "@grafana/e2e-selectors": "9.0.0-pre", - "@grafana/schema": "9.0.0-pre", + "@grafana/data": "9.0.0-beta.1", + "@grafana/e2e-selectors": "9.0.0-beta.1", + "@grafana/schema": "9.0.0-beta.1", "@grafana/slate-react": "0.22.10-grafana", "@monaco-editor/react": "4.3.1", "@popperjs/core": "2.11.5", diff --git a/packages/jaeger-ui-components/package.json b/packages/jaeger-ui-components/package.json index bd6dfb630ee..65b25627557 100644 --- a/packages/jaeger-ui-components/package.json +++ b/packages/jaeger-ui-components/package.json @@ -1,6 +1,6 @@ { "name": "@jaegertracing/jaeger-ui-components", - "version": "9.0.0-pre", + "version": "9.0.0-beta.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -28,9 +28,9 @@ }, "dependencies": { "@emotion/css": "11.9.0", - "@grafana/data": "9.0.0-pre", - "@grafana/e2e-selectors": "9.0.0-pre", - "@grafana/ui": "9.0.0-pre", + "@grafana/data": "9.0.0-beta.1", + "@grafana/e2e-selectors": "9.0.0-beta.1", + "@grafana/ui": "9.0.0-beta.1", "chance": "^1.0.10", "classnames": "^2.2.5", "combokeys": "^3.0.0", diff --git a/plugins-bundled/internal/input-datasource/package.json b/plugins-bundled/internal/input-datasource/package.json index 6c0b9f5fe15..1ff6c2427c8 100644 --- a/plugins-bundled/internal/input-datasource/package.json +++ b/plugins-bundled/internal/input-datasource/package.json @@ -1,6 +1,6 @@ { "name": "@grafana-plugins/input-datasource", - "version": "9.0.0-pre", + "version": "9.0.0-beta.1", "description": "Input Datasource", "private": true, "repository": { @@ -24,9 +24,9 @@ "webpack": "5.58.1" }, "dependencies": { - "@grafana/data": "9.0.0-pre", - "@grafana/toolkit": "9.0.0-pre", - "@grafana/ui": "9.0.0-pre", + "@grafana/data": "9.0.0-beta.1", + "@grafana/toolkit": "9.0.0-beta.1", + "@grafana/ui": "9.0.0-beta.1", "jquery": "3.5.1", "react": "17.0.1", "react-dom": "17.0.1", diff --git a/yarn.lock b/yarn.lock index 14b24a10a8b..1a813b8fd16 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4302,9 +4302,9 @@ __metadata: version: 0.0.0-use.local resolution: "@grafana-plugins/input-datasource@workspace:plugins-bundled/internal/input-datasource" dependencies: - "@grafana/data": 9.0.0-pre - "@grafana/toolkit": 9.0.0-pre - "@grafana/ui": 9.0.0-pre + "@grafana/data": 9.0.0-beta.1 + "@grafana/toolkit": 9.0.0-beta.1 + "@grafana/ui": 9.0.0-beta.1 "@types/jest": 26.0.15 "@types/lodash": 4.14.149 "@types/react": 17.0.30 @@ -4345,12 +4345,12 @@ __metadata: languageName: node linkType: hard -"@grafana/data@9.0.0-pre, @grafana/data@workspace:*, @grafana/data@workspace:packages/grafana-data": +"@grafana/data@9.0.0-beta.1, @grafana/data@workspace:*, @grafana/data@workspace:packages/grafana-data": version: 0.0.0-use.local resolution: "@grafana/data@workspace:packages/grafana-data" dependencies: "@braintree/sanitize-url": 6.0.0 - "@grafana/schema": 9.0.0-pre + "@grafana/schema": 9.0.0-beta.1 "@grafana/tsconfig": ^1.2.0-rc1 "@rollup/plugin-commonjs": 22.0.0 "@rollup/plugin-json": 4.1.0 @@ -4403,7 +4403,7 @@ __metadata: languageName: unknown linkType: soft -"@grafana/e2e-selectors@9.0.0-pre, @grafana/e2e-selectors@workspace:*, @grafana/e2e-selectors@workspace:packages/grafana-e2e-selectors": +"@grafana/e2e-selectors@9.0.0-beta.1, @grafana/e2e-selectors@workspace:*, @grafana/e2e-selectors@workspace:packages/grafana-e2e-selectors": version: 0.0.0-use.local resolution: "@grafana/e2e-selectors@workspace:packages/grafana-e2e-selectors" dependencies: @@ -4427,7 +4427,7 @@ __metadata: "@babel/core": 7.17.8 "@babel/preset-env": 7.17.10 "@cypress/webpack-preprocessor": 5.11.1 - "@grafana/e2e-selectors": 9.0.0-pre + "@grafana/e2e-selectors": 9.0.0-beta.1 "@grafana/tsconfig": ^1.2.0-rc1 "@mochajs/json-file-reporter": ^1.2.0 "@rollup/plugin-commonjs": 22.0.0 @@ -4534,10 +4534,10 @@ __metadata: version: 0.0.0-use.local resolution: "@grafana/runtime@workspace:packages/grafana-runtime" dependencies: - "@grafana/data": 9.0.0-pre - "@grafana/e2e-selectors": 9.0.0-pre + "@grafana/data": 9.0.0-beta.1 + "@grafana/e2e-selectors": 9.0.0-beta.1 "@grafana/tsconfig": ^1.2.0-rc1 - "@grafana/ui": 9.0.0-pre + "@grafana/ui": 9.0.0-beta.1 "@rollup/plugin-commonjs": 22.0.0 "@rollup/plugin-node-resolve": 13.3.0 "@sentry/browser": 6.19.7 @@ -4566,7 +4566,7 @@ __metadata: languageName: unknown linkType: soft -"@grafana/schema@9.0.0-pre, @grafana/schema@workspace:*, @grafana/schema@workspace:packages/grafana-schema": +"@grafana/schema@9.0.0-beta.1, @grafana/schema@workspace:*, @grafana/schema@workspace:packages/grafana-schema": version: 0.0.0-use.local resolution: "@grafana/schema@workspace:packages/grafana-schema" dependencies: @@ -4613,16 +4613,16 @@ __metadata: languageName: node linkType: hard -"@grafana/toolkit@9.0.0-pre, @grafana/toolkit@workspace:*, @grafana/toolkit@workspace:packages/grafana-toolkit": +"@grafana/toolkit@9.0.0-beta.1, @grafana/toolkit@workspace:*, @grafana/toolkit@workspace:packages/grafana-toolkit": version: 0.0.0-use.local resolution: "@grafana/toolkit@workspace:packages/grafana-toolkit" dependencies: "@babel/core": 7.13.14 "@babel/preset-env": 7.13.12 - "@grafana/data": 9.0.0-pre + "@grafana/data": 9.0.0-beta.1 "@grafana/eslint-config": 2.5.2 "@grafana/tsconfig": ^1.2.0-rc1 - "@grafana/ui": 9.0.0-pre + "@grafana/ui": 9.0.0-beta.1 "@jest/core": 26.6.3 "@rushstack/eslint-patch": 1.0.6 "@types/command-exists": ^1.2.0 @@ -4706,7 +4706,7 @@ __metadata: languageName: node linkType: hard -"@grafana/ui@9.0.0-pre, @grafana/ui@workspace:*, @grafana/ui@workspace:packages/grafana-ui": +"@grafana/ui@9.0.0-beta.1, @grafana/ui@workspace:*, @grafana/ui@workspace:packages/grafana-ui": version: 0.0.0-use.local resolution: "@grafana/ui@workspace:packages/grafana-ui" dependencies: @@ -4714,9 +4714,9 @@ __metadata: "@emotion/css": 11.9.0 "@emotion/react": 11.9.0 "@grafana/aws-sdk": 0.0.36 - "@grafana/data": 9.0.0-pre - "@grafana/e2e-selectors": 9.0.0-pre - "@grafana/schema": 9.0.0-pre + "@grafana/data": 9.0.0-beta.1 + "@grafana/e2e-selectors": 9.0.0-beta.1 + "@grafana/schema": 9.0.0-beta.1 "@grafana/slate-react": 0.22.10-grafana "@grafana/tsconfig": ^1.2.0-rc1 "@mdx-js/react": 1.6.22 @@ -4952,10 +4952,10 @@ __metadata: resolution: "@jaegertracing/jaeger-ui-components@workspace:packages/jaeger-ui-components" dependencies: "@emotion/css": 11.9.0 - "@grafana/data": 9.0.0-pre - "@grafana/e2e-selectors": 9.0.0-pre + "@grafana/data": 9.0.0-beta.1 + "@grafana/e2e-selectors": 9.0.0-beta.1 "@grafana/tsconfig": ^1.2.0-rc1 - "@grafana/ui": 9.0.0-pre + "@grafana/ui": 9.0.0-beta.1 "@testing-library/react": 12.1.4 "@testing-library/user-event": 14.2.0 "@types/classnames": ^2.2.7 From ba4c292f67d29ec31d6e05eef4856d9edfc62991 Mon Sep 17 00:00:00 2001 From: "Grot (@grafanabot)" <43478413+grafanabot@users.noreply.github.com> Date: Tue, 24 May 2022 10:47:57 -0400 Subject: [PATCH 003/103] Fix escape in Modal/DashboardSettings + add some unit tests (#49500) (#49504) (cherry picked from commit 8166d7dc4d70b45ab3a76ba25e1d83a380d5d0f7) Co-authored-by: Ashley Harrison --- .../src/components/Drawer/Drawer.tsx | 2 + .../src/components/Modal/Modal.test.tsx | 19 +++++++ .../grafana-ui/src/components/Modal/Modal.tsx | 2 +- .../DashboardSettings.test.tsx | 51 +++++++++++++++++++ .../DashboardSettings/DashboardSettings.tsx | 8 ++- 5 files changed, 80 insertions(+), 2 deletions(-) create mode 100644 public/app/features/dashboard/components/DashboardSettings/DashboardSettings.test.tsx diff --git a/packages/grafana-ui/src/components/Drawer/Drawer.tsx b/packages/grafana-ui/src/components/Drawer/Drawer.tsx index 7bf729d0334..55b61dc0cd5 100644 --- a/packages/grafana-ui/src/components/Drawer/Drawer.tsx +++ b/packages/grafana-ui/src/components/Drawer/Drawer.tsx @@ -55,6 +55,8 @@ export function Drawer({ const { overlayProps } = useOverlay( { isDismissable: true, + isOpen, + onClose, }, overlayRef ); diff --git a/packages/grafana-ui/src/components/Modal/Modal.test.tsx b/packages/grafana-ui/src/components/Modal/Modal.test.tsx index 08d558d395b..7f4a79d8480 100644 --- a/packages/grafana-ui/src/components/Modal/Modal.test.tsx +++ b/packages/grafana-ui/src/components/Modal/Modal.test.tsx @@ -1,4 +1,5 @@ import { render, screen } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; import React from 'react'; import { Modal } from './Modal'; @@ -22,4 +23,22 @@ describe('Modal', () => { expect(screen.getByTestId('modal-content')).toBeInTheDocument(); }); + + it('pressing escape calls onDismiss correctly', async () => { + const onDismiss = jest.fn(); + + render( + +
Content
+
+ ); + + expect(screen.getByRole('dialog')).toBeInTheDocument(); + expect(screen.getByLabelText('Some Title')).toBeInTheDocument(); + expect(screen.getByTestId('modal-content')).toBeInTheDocument(); + + await userEvent.keyboard('{Escape}'); + + expect(onDismiss).toHaveBeenCalled(); + }); }); diff --git a/packages/grafana-ui/src/components/Modal/Modal.tsx b/packages/grafana-ui/src/components/Modal/Modal.tsx index 8b2e6adc175..a3f6aeba5df 100644 --- a/packages/grafana-ui/src/components/Modal/Modal.tsx +++ b/packages/grafana-ui/src/components/Modal/Modal.tsx @@ -53,7 +53,7 @@ export function Modal(props: PropsWithChildren) { // Handle interacting outside the dialog and pressing // the Escape key to close the modal. const { overlayProps, underlayProps } = useOverlay( - { isKeyboardDismissDisabled: closeOnEscape, isOpen, onClose: onDismiss }, + { isKeyboardDismissDisabled: !closeOnEscape, isOpen, onClose: onDismiss }, ref ); diff --git a/public/app/features/dashboard/components/DashboardSettings/DashboardSettings.test.tsx b/public/app/features/dashboard/components/DashboardSettings/DashboardSettings.test.tsx new file mode 100644 index 00000000000..a694be7c3f6 --- /dev/null +++ b/public/app/features/dashboard/components/DashboardSettings/DashboardSettings.test.tsx @@ -0,0 +1,51 @@ +import { render, screen } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; +import React from 'react'; +import { Provider } from 'react-redux'; +import { BrowserRouter } from 'react-router-dom'; + +import { locationService, setBackendSrv } from '@grafana/runtime'; +import { configureStore } from 'app/store/configureStore'; + +import { DashboardModel } from '../../state'; + +import { DashboardSettings } from './DashboardSettings'; + +jest.mock('@grafana/runtime', () => ({ + ...jest.requireActual('@grafana/runtime'), + locationService: { + partial: jest.fn(), + }, +})); + +setBackendSrv({ + get: jest.fn().mockResolvedValue({}), +} as any); + +describe('DashboardSettings', () => { + it('pressing escape navigates away correctly', async () => { + jest.spyOn(locationService, 'partial'); + const dashboard = new DashboardModel( + { + title: 'Foo', + }, + { + folderId: 1, + } + ); + const store = configureStore(); + render( + + + + + + ); + + expect(screen.getByText('Foo / Settings')).toBeInTheDocument(); + + await userEvent.keyboard('{Escape}'); + + expect(locationService.partial).toHaveBeenCalledWith({ editview: null }); + }); +}); diff --git a/public/app/features/dashboard/components/DashboardSettings/DashboardSettings.tsx b/public/app/features/dashboard/components/DashboardSettings/DashboardSettings.tsx index d8494fe6c59..363eae8acc6 100644 --- a/public/app/features/dashboard/components/DashboardSettings/DashboardSettings.tsx +++ b/public/app/features/dashboard/components/DashboardSettings/DashboardSettings.tsx @@ -49,7 +49,13 @@ const MakeEditable = (props: { onMakeEditable: () => any }) => ( export function DashboardSettings({ dashboard, editview }: Props) { const ref = useRef(null); - const { overlayProps } = useOverlay({}, ref); + const { overlayProps } = useOverlay( + { + isOpen: true, + onClose, + }, + ref + ); const { dialogProps } = useDialog( { 'aria-label': 'Dashboard settings', From 4dd08e7da62f1ad40261127e2596b5c76483ecbe Mon Sep 17 00:00:00 2001 From: "Grot (@grafanabot)" <43478413+grafanabot@users.noreply.github.com> Date: Tue, 24 May 2022 11:21:27 -0400 Subject: [PATCH 004/103] Alerting: Validate alert notification UID length (#45546) (#49513) * validate alert notification UID length * simplify-ish * remove unused field * whoopsie * delete newline * remove check * apply feedback (cherry picked from commit 635fa4ab0f349a9e7a6baa09c69414960c57a44e) Co-authored-by: Will Browne --- pkg/services/alerting/service.go | 13 +++++++++++++ pkg/services/alerting/service_test.go | 21 +++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/pkg/services/alerting/service.go b/pkg/services/alerting/service.go index 34e683561fc..7c30b0a635f 100644 --- a/pkg/services/alerting/service.go +++ b/pkg/services/alerting/service.go @@ -9,6 +9,7 @@ import ( "github.com/grafana/grafana/pkg/services/notifications" "github.com/grafana/grafana/pkg/services/sqlstore" "github.com/grafana/grafana/pkg/setting" + "github.com/grafana/grafana/pkg/util" ) type AlertNotificationService struct { @@ -33,6 +34,10 @@ func (s *AlertNotificationService) GetAlertNotifications(ctx context.Context, qu } func (s *AlertNotificationService) CreateAlertNotificationCommand(ctx context.Context, cmd *models.CreateAlertNotificationCommand) error { + if util.IsShortUIDTooLong(cmd.Uid) { + return ValidationError{Reason: "Invalid UID: Must be 40 characters or less"} + } + var err error cmd.EncryptedSecureSettings, err = s.EncryptionService.EncryptJsonData(ctx, cmd.SecureSettings, setting.SecretKey) if err != nil { @@ -53,6 +58,10 @@ func (s *AlertNotificationService) CreateAlertNotificationCommand(ctx context.Co } func (s *AlertNotificationService) UpdateAlertNotification(ctx context.Context, cmd *models.UpdateAlertNotificationCommand) error { + if util.IsShortUIDTooLong(cmd.Uid) { + return ValidationError{Reason: "Invalid UID: Must be 40 characters or less"} + } + var err error cmd.EncryptedSecureSettings, err = s.EncryptionService.EncryptJsonData(ctx, cmd.SecureSettings, setting.SecretKey) if err != nil { @@ -99,6 +108,10 @@ func (s *AlertNotificationService) GetAlertNotificationsWithUid(ctx context.Cont } func (s *AlertNotificationService) UpdateAlertNotificationWithUid(ctx context.Context, cmd *models.UpdateAlertNotificationWithUidCommand) error { + if util.IsShortUIDTooLong(cmd.Uid) || util.IsShortUIDTooLong(cmd.NewUid) { + return ValidationError{Reason: "Invalid UID: Must be 40 characters or less"} + } + return s.SQLStore.UpdateAlertNotificationWithUid(ctx, cmd) } diff --git a/pkg/services/alerting/service_test.go b/pkg/services/alerting/service_test.go index edd58a5da30..0d8e19245a3 100644 --- a/pkg/services/alerting/service_test.go +++ b/pkg/services/alerting/service_test.go @@ -2,6 +2,7 @@ package alerting import ( "context" + "strings" "testing" "github.com/grafana/grafana/pkg/components/simplejson" @@ -112,6 +113,26 @@ func TestService(t *testing.T) { err = s.DeleteAlertNotification(context.Background(), &delCmd) require.NoError(t, err) }) + + t.Run("create alert notification should reject an invalid command", func(t *testing.T) { + uid := strings.Repeat("A", 41) + + err := s.CreateAlertNotificationCommand(context.Background(), &models.CreateAlertNotificationCommand{Uid: uid}) + require.ErrorIs(t, err, ValidationError{Reason: "Invalid UID: Must be 40 characters or less"}) + }) + + t.Run("update alert notification should reject an invalid command", func(t *testing.T) { + ctx := context.Background() + + uid := strings.Repeat("A", 41) + expectedErr := ValidationError{Reason: "Invalid UID: Must be 40 characters or less"} + + err := s.UpdateAlertNotification(ctx, &models.UpdateAlertNotificationCommand{Uid: uid}) + require.ErrorIs(t, err, expectedErr) + + err = s.UpdateAlertNotificationWithUid(ctx, &models.UpdateAlertNotificationWithUidCommand{NewUid: uid}) + require.ErrorIs(t, err, expectedErr) + }) } func registerTestNotifier(notifierType string) { From b8544741aa560ecd7a6a6a55838db3317ff5428d Mon Sep 17 00:00:00 2001 From: "Grot (@grafanabot)" <43478413+grafanabot@users.noreply.github.com> Date: Tue, 24 May 2022 12:16:55 -0400 Subject: [PATCH 005/103] AzureAD: Fallback to no groups if user does not have permission to query groups from azure (#49506) (#49522) * If GroupMemver.Read.All permissions is not configured return no groups * fix log (cherry picked from commit 624f8ef40de6d2855911752bd0e0c716d477d213) Co-authored-by: Karl Persson --- pkg/login/social/azuread_oauth.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/login/social/azuread_oauth.go b/pkg/login/social/azuread_oauth.go index ff1d51a7a4e..774e7bdfa55 100644 --- a/pkg/login/social/azuread_oauth.go +++ b/pkg/login/social/azuread_oauth.go @@ -213,7 +213,8 @@ func extractGroups(client *http.Client, claims azureClaims, token *oauth2.Token) if res.StatusCode != http.StatusOK { if res.StatusCode == http.StatusForbidden { - logger.Error("AzureAD OAuth: failed to fetch user groups. Token need User.Read and GroupMember.Read.All permission") + logger.Warn("AzureAD OAuh: Token need GroupMember.Read.All permission to fetch all groups") + return []string{}, nil } return nil, errors.New("error fetching groups") } From 0704838c952fe913c5bbdcdfc653221aad60792e Mon Sep 17 00:00:00 2001 From: "Grot (@grafanabot)" <43478413+grafanabot@users.noreply.github.com> Date: Tue, 24 May 2022 13:44:11 -0400 Subject: [PATCH 006/103] InfluxDB: Removing influxDB backend migration feature flag (#49531) (#49532) Removing the `influxdbBackendMigration` feature toggle default value. (cherry picked from commit 27c26c30d1a6fabd48ed1bdacde8e3481f9a9b4c) Co-authored-by: Sriram --- conf/defaults.ini | 3 --- 1 file changed, 3 deletions(-) diff --git a/conf/defaults.ini b/conf/defaults.ini index 2120725f2ca..1fa6c669021 100644 --- a/conf/defaults.ini +++ b/conf/defaults.ini @@ -1174,9 +1174,6 @@ promQueryBuilder = true # The new loki visual query builder lokiQueryBuilder = true -# InfluxDB backend migration -influxdbBackendMigration = true - # Experimental Explore to Dashboard workflow explore2Dashboard = true From d77a09e2d8bc84a71ca4967c0142e6b5886af2a1 Mon Sep 17 00:00:00 2001 From: "Grot (@grafanabot)" <43478413+grafanabot@users.noreply.github.com> Date: Tue, 24 May 2022 14:36:10 -0400 Subject: [PATCH 007/103] upgrade grabpl (#49534) (#49536) (cherry picked from commit 61101056b6058d552c792ed52637c142f4f676ad) Co-authored-by: Kevin Minehart --- .drone.yml | 76 ++++++++++++++++++------------------ scripts/drone/steps/lib.star | 2 +- 2 files changed, 39 insertions(+), 39 deletions(-) diff --git a/.drone.yml b/.drone.yml index 12334803eb9..40305f9faf0 100644 --- a/.drone.yml +++ b/.drone.yml @@ -15,7 +15,7 @@ steps: name: identify-runner - commands: - mkdir -p bin - - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.48/grabpl + - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.49/grabpl - chmod +x bin/grabpl image: byrnedo/alpine-curl:0.1.8 name: grabpl @@ -80,7 +80,7 @@ steps: name: identify-runner - commands: - mkdir -p bin - - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.48/grabpl + - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.49/grabpl - chmod +x bin/grabpl image: byrnedo/alpine-curl:0.1.8 name: grabpl @@ -168,7 +168,7 @@ steps: name: identify-runner - commands: - mkdir -p bin - - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.48/grabpl + - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.49/grabpl - chmod +x bin/grabpl image: byrnedo/alpine-curl:0.1.8 name: grabpl @@ -434,7 +434,7 @@ services: steps: - commands: - mkdir -p bin - - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.48/grabpl + - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.49/grabpl - chmod +x bin/grabpl image: byrnedo/alpine-curl:0.1.8 name: grabpl @@ -504,7 +504,7 @@ services: [] steps: - commands: - mkdir -p bin - - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.48/grabpl + - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.49/grabpl - chmod +x bin/grabpl image: byrnedo/alpine-curl:0.1.8 name: grabpl @@ -594,7 +594,7 @@ services: [] steps: - commands: - mkdir -p bin - - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.48/grabpl + - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.49/grabpl - chmod +x bin/grabpl image: byrnedo/alpine-curl:0.1.8 name: grabpl @@ -683,7 +683,7 @@ steps: name: identify-runner - commands: - mkdir -p bin - - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.48/grabpl + - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.49/grabpl - chmod +x bin/grabpl image: byrnedo/alpine-curl:0.1.8 name: grabpl @@ -744,7 +744,7 @@ steps: name: identify-runner - commands: - mkdir -p bin - - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.48/grabpl + - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.49/grabpl - chmod +x bin/grabpl image: byrnedo/alpine-curl:0.1.8 name: grabpl @@ -828,7 +828,7 @@ steps: name: identify-runner - commands: - mkdir -p bin - - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.48/grabpl + - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.49/grabpl - chmod +x bin/grabpl image: byrnedo/alpine-curl:0.1.8 name: grabpl @@ -1261,7 +1261,7 @@ services: steps: - commands: - mkdir -p bin - - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.48/grabpl + - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.49/grabpl - chmod +x bin/grabpl image: byrnedo/alpine-curl:0.1.8 name: grabpl @@ -1334,7 +1334,7 @@ steps: name: identify-runner - commands: - $$ProgressPreference = "SilentlyContinue" - - Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.48/windows/grabpl.exe + - Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.49/windows/grabpl.exe -OutFile grabpl.exe image: grafana/ci-wix:0.1.1 name: windows-init @@ -1422,7 +1422,7 @@ services: [] steps: - commands: - mkdir -p bin - - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.48/grabpl + - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.49/grabpl - chmod +x bin/grabpl image: byrnedo/alpine-curl:0.1.8 name: grabpl @@ -1507,7 +1507,7 @@ steps: name: identify-runner - commands: - mkdir -p bin - - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.48/grabpl + - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.49/grabpl - chmod +x bin/grabpl image: byrnedo/alpine-curl:0.1.8 name: grabpl @@ -1813,7 +1813,7 @@ steps: name: identify-runner - commands: - mkdir -p bin - - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.48/grabpl + - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.49/grabpl - chmod +x bin/grabpl image: byrnedo/alpine-curl:0.1.8 name: grabpl @@ -1937,7 +1937,7 @@ services: steps: - commands: - mkdir -p bin - - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.48/grabpl + - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.49/grabpl - chmod +x bin/grabpl image: byrnedo/alpine-curl:0.1.8 name: grabpl @@ -2014,7 +2014,7 @@ steps: name: identify-runner - commands: - $$ProgressPreference = "SilentlyContinue" - - Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.48/windows/grabpl.exe + - Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.49/windows/grabpl.exe -OutFile grabpl.exe image: grafana/ci-wix:0.1.1 name: windows-init @@ -2073,7 +2073,7 @@ services: [] steps: - commands: - mkdir -p bin - - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.48/grabpl + - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.49/grabpl - chmod +x bin/grabpl image: byrnedo/alpine-curl:0.1.8 name: grabpl @@ -2430,7 +2430,7 @@ services: [] steps: - commands: - mkdir -p bin - - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.48/grabpl + - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.49/grabpl - chmod +x bin/grabpl image: byrnedo/alpine-curl:0.1.8 name: grabpl @@ -2609,7 +2609,7 @@ services: steps: - commands: - mkdir -p bin - - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.48/grabpl + - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.49/grabpl - chmod +x bin/grabpl image: byrnedo/alpine-curl:0.1.8 name: grabpl @@ -2733,7 +2733,7 @@ steps: name: identify-runner - commands: - $$ProgressPreference = "SilentlyContinue" - - Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.48/windows/grabpl.exe + - Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.49/windows/grabpl.exe -OutFile grabpl.exe - git clone "https://$$env:GITHUB_TOKEN@github.com/grafana/grafana-enterprise.git" - cd grafana-enterprise @@ -2808,7 +2808,7 @@ services: [] steps: - commands: - mkdir -p bin - - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.48/grabpl + - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.49/grabpl - chmod +x bin/grabpl image: byrnedo/alpine-curl:0.1.8 name: grabpl @@ -2886,7 +2886,7 @@ services: [] steps: - commands: - mkdir -p bin - - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.48/grabpl + - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.49/grabpl - chmod +x bin/grabpl image: byrnedo/alpine-curl:0.1.8 name: grabpl @@ -2947,7 +2947,7 @@ services: [] steps: - commands: - mkdir -p bin - - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.48/grabpl + - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.49/grabpl - chmod +x bin/grabpl image: byrnedo/alpine-curl:0.1.8 name: grabpl @@ -3026,7 +3026,7 @@ services: [] steps: - commands: - mkdir -p bin - - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.48/grabpl + - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.49/grabpl - chmod +x bin/grabpl image: byrnedo/alpine-curl:0.1.8 name: grabpl @@ -3088,7 +3088,7 @@ services: [] steps: - commands: - mkdir -p bin - - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.48/grabpl + - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.49/grabpl - chmod +x bin/grabpl image: byrnedo/alpine-curl:0.1.8 name: grabpl @@ -3126,7 +3126,7 @@ services: [] steps: - commands: - mkdir -p bin - - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.48/grabpl + - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.49/grabpl - chmod +x bin/grabpl image: byrnedo/alpine-curl:0.1.8 name: grabpl @@ -3164,7 +3164,7 @@ services: [] steps: - commands: - mkdir -p bin - - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.48/grabpl + - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.49/grabpl - chmod +x bin/grabpl image: byrnedo/alpine-curl:0.1.8 name: grabpl @@ -3220,7 +3220,7 @@ services: [] steps: - commands: - mkdir -p bin - - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.48/grabpl + - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.49/grabpl - chmod +x bin/grabpl image: byrnedo/alpine-curl:0.1.8 name: grabpl @@ -3268,7 +3268,7 @@ services: [] steps: - commands: - mkdir -p bin - - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.48/grabpl + - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.49/grabpl - chmod +x bin/grabpl image: byrnedo/alpine-curl:0.1.8 name: grabpl @@ -3317,7 +3317,7 @@ steps: name: identify-runner - commands: - mkdir -p bin - - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.48/grabpl + - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.49/grabpl - chmod +x bin/grabpl image: byrnedo/alpine-curl:0.1.8 name: grabpl @@ -3593,7 +3593,7 @@ steps: name: identify-runner - commands: - mkdir -p bin - - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.48/grabpl + - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.49/grabpl - chmod +x bin/grabpl image: byrnedo/alpine-curl:0.1.8 name: grabpl @@ -3711,7 +3711,7 @@ services: steps: - commands: - mkdir -p bin - - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.48/grabpl + - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.49/grabpl - chmod +x bin/grabpl image: byrnedo/alpine-curl:0.1.8 name: grabpl @@ -3782,7 +3782,7 @@ steps: name: identify-runner - commands: - $$ProgressPreference = "SilentlyContinue" - - Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.48/windows/grabpl.exe + - Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.49/windows/grabpl.exe -OutFile grabpl.exe image: grafana/ci-wix:0.1.1 name: windows-init @@ -3830,7 +3830,7 @@ services: [] steps: - commands: - mkdir -p bin - - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.48/grabpl + - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.49/grabpl - chmod +x bin/grabpl image: byrnedo/alpine-curl:0.1.8 name: grabpl @@ -4185,7 +4185,7 @@ services: [] steps: - commands: - mkdir -p bin - - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.48/grabpl + - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.49/grabpl - chmod +x bin/grabpl image: byrnedo/alpine-curl:0.1.8 name: grabpl @@ -4355,7 +4355,7 @@ services: steps: - commands: - mkdir -p bin - - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.48/grabpl + - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.49/grabpl - chmod +x bin/grabpl image: byrnedo/alpine-curl:0.1.8 name: grabpl @@ -4470,7 +4470,7 @@ steps: name: identify-runner - commands: - $$ProgressPreference = "SilentlyContinue" - - Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.48/windows/grabpl.exe + - Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.9.49/windows/grabpl.exe -OutFile grabpl.exe - git clone "https://$$env:GITHUB_TOKEN@github.com/grafana/grafana-enterprise.git" - cd grafana-enterprise @@ -4667,6 +4667,6 @@ kind: secret name: gcp_upload_artifacts_key --- kind: signature -hmac: 39c6fd27fc223b7bc99242101d28f508cdbbf01b561330bb52979f1d032af5d5 +hmac: a697f4b02af2da0fc6c0d751e40e59db542541d6024e5f0c2b062c7060d635ab ... diff --git a/scripts/drone/steps/lib.star b/scripts/drone/steps/lib.star index d4b96bf754d..1f369b422e0 100644 --- a/scripts/drone/steps/lib.star +++ b/scripts/drone/steps/lib.star @@ -1,6 +1,6 @@ load('scripts/drone/vault.star', 'from_secret', 'github_token', 'pull_secret', 'drone_token', 'prerelease_bucket') -grabpl_version = 'v2.9.48' +grabpl_version = 'v2.9.49' build_image = 'grafana/build-container:1.5.4' publish_image = 'grafana/grafana-ci-deploy:1.3.1' deploy_docker_image = 'us.gcr.io/kubernetes-dev/drone/plugins/deploy-image' From 1e2708cbcf2732cccb122088393a57900e680985 Mon Sep 17 00:00:00 2001 From: "Grot (@grafanabot)" <43478413+grafanabot@users.noreply.github.com> Date: Tue, 24 May 2022 16:35:19 -0400 Subject: [PATCH 008/103] Prometheus: Streaming JSON parser performance improvements (#48792) (#49542) (cherry picked from commit 94b9c524a81df2085ad769229ca09cfd1923a8e9) Co-authored-by: Todd Treece <360020+toddtreece@users.noreply.github.com> --- .../src/types/featureToggles.gen.ts | 1 + pkg/services/featuremgmt/registry.go | 5 + pkg/services/featuremgmt/toggles_gen.go | 4 + pkg/tsdb/loki/api.go | 2 +- pkg/tsdb/prometheus/prometheus.go | 2 +- pkg/tsdb/prometheus/querydata/framing_test.go | 69 +- .../querydata/prometeus_bench_test.go | 2 +- pkg/tsdb/prometheus/querydata/request.go | 2 + pkg/tsdb/prometheus/querydata/request_test.go | 46 +- pkg/tsdb/prometheus/querydata/response.go | 41 +- .../range_infinity.buffered.result.golden.txt | 24 + ...infinity.result.streaming-wide.golden.json | 60 + ..._infinity.result.streaming-wide.golden.txt | 24 + .../range_missing.buffered.result.golden.txt | 24 + ..._missing.result.streaming-wide.golden.json | 53 + ...e_missing.result.streaming-wide.golden.txt | 24 + .../range_nan.buffered.result.golden.txt | 24 + ...ange_nan.result.streaming-wide.golden.json | 63 + ...range_nan.result.streaming-wide.golden.txt | 24 + .../range_simple.buffered.result.golden.txt | 46 + .../testdata/range_simple.result.golden.json | 2 - .../testdata/range_simple.result.golden.txt | 5 +- .../testdata/range_simple.result.json | 1 - ...e_simple.result.streaming-wide.golden.json | 74 + ...ge_simple.result.streaming-wide.golden.txt | 24 + .../range_simple.result.streaming.golden.json | 2 - .../range_simple.result.streaming.golden.txt | 5 +- pkg/util/converter/prom.go | 139 +- pkg/util/converter/prom_test.go | 76 +- .../testdata/loki-streams-a-frame.json | 52 +- .../testdata/loki-streams-a-wide-frame.json | 90 + .../testdata/loki-streams-a-wide-golden.txt | 56 + .../testdata/loki-streams-b-frame.json | 18 +- .../testdata/loki-streams-b-wide-frame.json | 90 + .../testdata/loki-streams-b-wide-golden.txt | 55 + .../testdata/prom-error-wide-frame.json | 3 + .../testdata/prom-error-wide-golden.txt | 3 + .../testdata/prom-exemplars-wide-frame.json | 116 ++ .../testdata/prom-exemplars-wide-golden.txt | 39 + .../testdata/prom-labels-wide-frame.json | 24 + .../testdata/prom-labels-wide-golden.txt | 25 + ...matrix-histogram-no-labels-wide-frame.json | 70 + ...matrix-histogram-no-labels-wide-golden.txt | 27 + ...trix-histogram-partitioned-wide-frame.json | 1636 +++++++++++++++++ ...trix-histogram-partitioned-wide-golden.txt | 490 +++++ .../testdata/prom-matrix-wide-frame.json | 62 + .../testdata/prom-matrix-wide-golden.txt | 23 + .../prom-matrix-with-nans-wide-frame.json | 59 + .../prom-matrix-with-nans-wide-golden.txt | 23 + .../testdata/prom-scalar-wide-frame.json | 43 + .../testdata/prom-scalar-wide-golden.txt | 21 + .../testdata/prom-series-wide-frame.json | 44 + .../testdata/prom-series-wide-golden.txt | 18 + .../testdata/prom-string-wide-frame.json | 43 + .../testdata/prom-string-wide-golden.txt | 21 + ...vector-histogram-no-labels-wide-frame.json | 70 + ...vector-histogram-no-labels-wide-golden.txt | 27 + .../testdata/prom-vector-wide-frame.json | 127 ++ .../testdata/prom-vector-wide-golden.txt | 22 + .../testdata/prom-warnings-wide-frame.json | 137 ++ .../testdata/prom-warnings-wide-golden.txt | 32 + 61 files changed, 4279 insertions(+), 155 deletions(-) create mode 100644 pkg/tsdb/prometheus/testdata/range_infinity.buffered.result.golden.txt create mode 100644 pkg/tsdb/prometheus/testdata/range_infinity.result.streaming-wide.golden.json create mode 100644 pkg/tsdb/prometheus/testdata/range_infinity.result.streaming-wide.golden.txt create mode 100644 pkg/tsdb/prometheus/testdata/range_missing.buffered.result.golden.txt create mode 100644 pkg/tsdb/prometheus/testdata/range_missing.result.streaming-wide.golden.json create mode 100644 pkg/tsdb/prometheus/testdata/range_missing.result.streaming-wide.golden.txt create mode 100644 pkg/tsdb/prometheus/testdata/range_nan.buffered.result.golden.txt create mode 100644 pkg/tsdb/prometheus/testdata/range_nan.result.streaming-wide.golden.json create mode 100644 pkg/tsdb/prometheus/testdata/range_nan.result.streaming-wide.golden.txt create mode 100644 pkg/tsdb/prometheus/testdata/range_simple.buffered.result.golden.txt create mode 100644 pkg/tsdb/prometheus/testdata/range_simple.result.streaming-wide.golden.json create mode 100644 pkg/tsdb/prometheus/testdata/range_simple.result.streaming-wide.golden.txt create mode 100644 pkg/util/converter/testdata/loki-streams-a-wide-frame.json create mode 100644 pkg/util/converter/testdata/loki-streams-a-wide-golden.txt create mode 100644 pkg/util/converter/testdata/loki-streams-b-wide-frame.json create mode 100644 pkg/util/converter/testdata/loki-streams-b-wide-golden.txt create mode 100644 pkg/util/converter/testdata/prom-error-wide-frame.json create mode 100644 pkg/util/converter/testdata/prom-error-wide-golden.txt create mode 100644 pkg/util/converter/testdata/prom-exemplars-wide-frame.json create mode 100644 pkg/util/converter/testdata/prom-exemplars-wide-golden.txt create mode 100644 pkg/util/converter/testdata/prom-labels-wide-frame.json create mode 100644 pkg/util/converter/testdata/prom-labels-wide-golden.txt create mode 100644 pkg/util/converter/testdata/prom-matrix-histogram-no-labels-wide-frame.json create mode 100644 pkg/util/converter/testdata/prom-matrix-histogram-no-labels-wide-golden.txt create mode 100644 pkg/util/converter/testdata/prom-matrix-histogram-partitioned-wide-frame.json create mode 100644 pkg/util/converter/testdata/prom-matrix-histogram-partitioned-wide-golden.txt create mode 100644 pkg/util/converter/testdata/prom-matrix-wide-frame.json create mode 100644 pkg/util/converter/testdata/prom-matrix-wide-golden.txt create mode 100644 pkg/util/converter/testdata/prom-matrix-with-nans-wide-frame.json create mode 100644 pkg/util/converter/testdata/prom-matrix-with-nans-wide-golden.txt create mode 100644 pkg/util/converter/testdata/prom-scalar-wide-frame.json create mode 100644 pkg/util/converter/testdata/prom-scalar-wide-golden.txt create mode 100644 pkg/util/converter/testdata/prom-series-wide-frame.json create mode 100644 pkg/util/converter/testdata/prom-series-wide-golden.txt create mode 100644 pkg/util/converter/testdata/prom-string-wide-frame.json create mode 100644 pkg/util/converter/testdata/prom-string-wide-golden.txt create mode 100644 pkg/util/converter/testdata/prom-vector-histogram-no-labels-wide-frame.json create mode 100644 pkg/util/converter/testdata/prom-vector-histogram-no-labels-wide-golden.txt create mode 100644 pkg/util/converter/testdata/prom-vector-wide-frame.json create mode 100644 pkg/util/converter/testdata/prom-vector-wide-golden.txt create mode 100644 pkg/util/converter/testdata/prom-warnings-wide-frame.json create mode 100644 pkg/util/converter/testdata/prom-warnings-wide-golden.txt diff --git a/packages/grafana-data/src/types/featureToggles.gen.ts b/packages/grafana-data/src/types/featureToggles.gen.ts index 0a148018e63..2267c7a0115 100644 --- a/packages/grafana-data/src/types/featureToggles.gen.ts +++ b/packages/grafana-data/src/types/featureToggles.gen.ts @@ -60,4 +60,5 @@ export interface FeatureToggles { traceToMetrics?: boolean; prometheusStreamingJSONParser?: boolean; validateDashboardsOnSave?: boolean; + prometheusWideSeries?: boolean; } diff --git a/pkg/services/featuremgmt/registry.go b/pkg/services/featuremgmt/registry.go index d0e19ce8dff..7e0b0066c38 100644 --- a/pkg/services/featuremgmt/registry.go +++ b/pkg/services/featuremgmt/registry.go @@ -249,5 +249,10 @@ var ( State: FeatureStateAlpha, RequiresRestart: true, }, + { + Name: "prometheusWideSeries", + Description: "Enable wide series responses in the Prometheus datasource", + State: FeatureStateAlpha, + }, } ) diff --git a/pkg/services/featuremgmt/toggles_gen.go b/pkg/services/featuremgmt/toggles_gen.go index da68445c912..66508a05e7f 100644 --- a/pkg/services/featuremgmt/toggles_gen.go +++ b/pkg/services/featuremgmt/toggles_gen.go @@ -182,4 +182,8 @@ const ( // FlagValidateDashboardsOnSave // Validate dashboard JSON POSTed to api/dashboards/db FlagValidateDashboardsOnSave = "validateDashboardsOnSave" + + // FlagPrometheusWideSeries + // Enable wide series responses in the Prometheus datasource + FlagPrometheusWideSeries = "prometheusWideSeries" ) diff --git a/pkg/tsdb/loki/api.go b/pkg/tsdb/loki/api.go index 609ae9308f3..2bbe18aba30 100644 --- a/pkg/tsdb/loki/api.go +++ b/pkg/tsdb/loki/api.go @@ -160,7 +160,7 @@ func (api *LokiAPI) DataQuery(ctx context.Context, query lokiQuery) (data.Frames } iter := jsoniter.Parse(jsoniter.ConfigDefault, resp.Body, 1024) - res := converter.ReadPrometheusStyleResult(iter) + res := converter.ReadPrometheusStyleResult(iter, converter.Options{MatrixWideSeries: false, VectorWideSeries: false}) if res.Error != nil { return nil, res.Error diff --git a/pkg/tsdb/prometheus/prometheus.go b/pkg/tsdb/prometheus/prometheus.go index 1be52be6b08..d4e0362c220 100644 --- a/pkg/tsdb/prometheus/prometheus.go +++ b/pkg/tsdb/prometheus/prometheus.go @@ -74,7 +74,7 @@ func (s *Service) QueryData(ctx context.Context, req *backend.QueryDataRequest) return nil, err } - if s.features.IsEnabled(featuremgmt.FlagPrometheusStreamingJSONParser) { + if s.features.IsEnabled(featuremgmt.FlagPrometheusStreamingJSONParser) || s.features.IsEnabled(featuremgmt.FlagPrometheusWideSeries) { return i.queryData.Execute(ctx, req) } diff --git a/pkg/tsdb/prometheus/querydata/framing_test.go b/pkg/tsdb/prometheus/querydata/framing_test.go index 50526ebec98..32ee249bc68 100644 --- a/pkg/tsdb/prometheus/querydata/framing_test.go +++ b/pkg/tsdb/prometheus/querydata/framing_test.go @@ -34,39 +34,46 @@ func TestMatrixResponses(t *testing.T) { } for _, test := range tt { - t.Run(test.name, func(t *testing.T) { - queryFileName := filepath.Join("../testdata", test.filepath+".query.json") - responseFileName := filepath.Join("../testdata", test.filepath+".result.json") - goldenFileName := filepath.Join("../testdata", test.filepath+".result.streaming.golden") + enableWideSeries := false + queryFileName := filepath.Join("../testdata", test.filepath+".query.json") + responseFileName := filepath.Join("../testdata", test.filepath+".result.json") + goldenFileName := filepath.Join("../testdata", test.filepath+".result.streaming.golden") + t.Run(test.name, goldenScenario(test.name, queryFileName, responseFileName, goldenFileName, enableWideSeries)) + enableWideSeries = true + goldenFileName = filepath.Join("../testdata", test.filepath+".result.streaming-wide.golden") + t.Run(test.name, goldenScenario(test.name, queryFileName, responseFileName, goldenFileName, enableWideSeries)) + } +} - query, err := loadStoredQuery(queryFileName) +func goldenScenario(name, queryFileName, responseFileName, goldenFileName string, wide bool) func(t *testing.T) { + return func(t *testing.T) { + query, err := loadStoredQuery(queryFileName) + require.NoError(t, err) + + responseBytes, err := os.ReadFile(responseFileName) + require.NoError(t, err) + + result, err := runQuery(responseBytes, query, wide) + require.NoError(t, err) + require.Len(t, result.Responses, 1) + + dr, found := result.Responses["A"] + require.True(t, found) + + actual, err := json.MarshalIndent(&dr, "", " ") + require.NoError(t, err) + + // nolint:gosec + // We can ignore the gosec G304 because this is a test with static defined paths + expected, err := ioutil.ReadFile(goldenFileName + ".json") + if err != nil || update { + err = os.WriteFile(goldenFileName+".json", actual, 0600) require.NoError(t, err) + } - responseBytes, err := os.ReadFile(responseFileName) - require.NoError(t, err) + require.JSONEq(t, string(expected), string(actual)) - result, err := runQuery(responseBytes, query) - require.NoError(t, err) - require.Len(t, result.Responses, 1) - - dr, found := result.Responses["A"] - require.True(t, found) - - actual, err := json.MarshalIndent(&dr, "", " ") - require.NoError(t, err) - - // nolint:gosec - // We can ignore the gosec G304 because this is a test with static defined paths - expected, err := ioutil.ReadFile(goldenFileName + ".json") - if err != nil || update { - err = os.WriteFile(goldenFileName+".json", actual, 0600) - require.NoError(t, err) - } - - require.JSONEq(t, string(expected), string(actual)) - - require.NoError(t, experimental.CheckGoldenDataResponse(goldenFileName+".txt", &dr, update)) - }) + require.NoError(t, experimental.CheckGoldenDataResponse(goldenFileName+".txt", &dr, update)) } } @@ -123,8 +130,8 @@ func loadStoredQuery(fileName string) (*backend.QueryDataRequest, error) { }, nil } -func runQuery(response []byte, q *backend.QueryDataRequest) (*backend.QueryDataResponse, error) { - tCtx := setup() +func runQuery(response []byte, q *backend.QueryDataRequest, wide bool) (*backend.QueryDataResponse, error) { + tCtx := setup(wide) res := &http.Response{ StatusCode: 200, Body: ioutil.NopCloser(bytes.NewReader(response)), diff --git a/pkg/tsdb/prometheus/querydata/prometeus_bench_test.go b/pkg/tsdb/prometheus/querydata/prometeus_bench_test.go index 50c1cfb3ea9..b7ce55437bb 100644 --- a/pkg/tsdb/prometheus/querydata/prometeus_bench_test.go +++ b/pkg/tsdb/prometheus/querydata/prometeus_bench_test.go @@ -22,7 +22,7 @@ import ( // - go tool pprof -http=localhost:6061 memprofile.out func BenchmarkJson(b *testing.B) { body, q := createJsonTestData(1642000000, 1, 300, 400) - tCtx := setup() + tCtx := setup(true) b.ResetTimer() for n := 0; n < b.N; n++ { res := http.Response{ diff --git a/pkg/tsdb/prometheus/querydata/request.go b/pkg/tsdb/prometheus/querydata/request.go index 1078a33c6fe..2e7ebac3c45 100644 --- a/pkg/tsdb/prometheus/querydata/request.go +++ b/pkg/tsdb/prometheus/querydata/request.go @@ -41,6 +41,7 @@ type QueryData struct { ID int64 URL string TimeInterval string + enableWideSeries bool } func New( @@ -75,6 +76,7 @@ func New( TimeInterval: timeInterval, ID: settings.ID, URL: settings.URL, + enableWideSeries: features.IsEnabled(featuremgmt.FlagPrometheusWideSeries), }, nil } diff --git a/pkg/tsdb/prometheus/querydata/request_test.go b/pkg/tsdb/prometheus/querydata/request_test.go index 03a0a1c86cf..a8f1f4089a5 100644 --- a/pkg/tsdb/prometheus/querydata/request_test.go +++ b/pkg/tsdb/prometheus/querydata/request_test.go @@ -58,7 +58,7 @@ func TestPrometheus_parseTimeSeriesResponse(t *testing.T) { }, } - tctx := setup() + tctx := setup(true) qm := models.QueryModel{ LegendFormat: "legend {{app}}", @@ -119,19 +119,17 @@ func TestPrometheus_parseTimeSeriesResponse(t *testing.T) { }, JSON: b, } - tctx := setup() + tctx := setup(true) res, err := execute(tctx, query, result) require.NoError(t, err) require.Len(t, res, 1) - //require.Equal(t, "legend Application", res[0].Name) require.Len(t, res[0].Fields, 2) require.Len(t, res[0].Fields[0].Labels, 0) require.Equal(t, "Time", res[0].Fields[0].Name) require.Len(t, res[0].Fields[1].Labels, 2) require.Equal(t, "app=Application, tag2=tag2", res[0].Fields[1].Labels.String()) - require.Equal(t, "Value", res[0].Fields[1].Name) - require.Equal(t, "legend Application", res[0].Fields[1].Config.DisplayNameFromDS) + require.Equal(t, "legend Application", res[0].Fields[1].Name) // Ensure the timestamps are UTC zoned testValue := res[0].Fields[0].At(0) @@ -167,7 +165,7 @@ func TestPrometheus_parseTimeSeriesResponse(t *testing.T) { }, JSON: b, } - tctx := setup() + tctx := setup(true) res, err := execute(tctx, query, result) require.NoError(t, err) @@ -176,8 +174,8 @@ func TestPrometheus_parseTimeSeriesResponse(t *testing.T) { require.Equal(t, time.Unix(1, 0).UTC(), res[0].Fields[0].At(0)) require.Equal(t, time.Unix(4, 0).UTC(), res[0].Fields[0].At(1)) require.Equal(t, res[0].Fields[1].Len(), 2) - require.Equal(t, float64(1), res[0].Fields[1].At(0).(float64)) - require.Equal(t, float64(4), res[0].Fields[1].At(1).(float64)) + require.Equal(t, float64(1), *res[0].Fields[1].At(0).(*float64)) + require.Equal(t, float64(4), *res[0].Fields[1].At(1).(*float64)) }) t.Run("matrix response with from alerting missed data points should be parsed correctly", func(t *testing.T) { @@ -209,19 +207,17 @@ func TestPrometheus_parseTimeSeriesResponse(t *testing.T) { }, JSON: b, } - tctx := setup() + tctx := setup(true) res, err := execute(tctx, query, result) require.NoError(t, err) require.Len(t, res, 1) - require.Equal(t, res[0].Name, "{app=\"Application\", tag2=\"tag2\"}") require.Len(t, res[0].Fields, 2) require.Len(t, res[0].Fields[0].Labels, 0) require.Equal(t, res[0].Fields[0].Name, "Time") require.Len(t, res[0].Fields[1].Labels, 2) require.Equal(t, res[0].Fields[1].Labels.String(), "app=Application, tag2=tag2") - require.Equal(t, res[0].Fields[1].Name, "Value") - require.Equal(t, res[0].Fields[1].Config.DisplayNameFromDS, "{app=\"Application\", tag2=\"tag2\"}") + require.Equal(t, "{app=\"Application\", tag2=\"tag2\"}", res[0].Fields[1].Name) }) t.Run("matrix response with NaN value should be changed to null", func(t *testing.T) { @@ -252,12 +248,12 @@ func TestPrometheus_parseTimeSeriesResponse(t *testing.T) { JSON: b, } - tctx := setup() + tctx := setup(true) res, err := execute(tctx, query, result) require.NoError(t, err) - require.Equal(t, res[0].Fields[1].Name, "Value") - require.True(t, math.IsNaN(res[0].Fields[1].At(0).(float64))) + require.Equal(t, "{app=\"Application\"}", res[0].Fields[1].Name) + require.True(t, math.IsNaN(*res[0].Fields[1].At(0).(*float64))) }) t.Run("vector response should be parsed normally", func(t *testing.T) { @@ -281,20 +277,18 @@ func TestPrometheus_parseTimeSeriesResponse(t *testing.T) { query := backend.DataQuery{ JSON: b, } - tctx := setup() + tctx := setup(true) res, err := execute(tctx, query, qr) require.NoError(t, err) require.Len(t, res, 1) - require.Equal(t, res[0].Name, "legend Application") require.Len(t, res[0].Fields, 2) require.Len(t, res[0].Fields[0].Labels, 0) require.Equal(t, res[0].Fields[0].Name, "Time") require.Equal(t, res[0].Fields[0].Name, "Time") require.Len(t, res[0].Fields[1].Labels, 2) require.Equal(t, res[0].Fields[1].Labels.String(), "app=Application, tag2=tag2") - require.Equal(t, res[0].Fields[1].Name, "Value") - require.Equal(t, res[0].Fields[1].Config.DisplayNameFromDS, "legend Application") + require.Equal(t, "legend Application", res[0].Fields[1].Name) // Ensure the timestamps are UTC zoned testValue := res[0].Fields[0].At(0) @@ -321,17 +315,15 @@ func TestPrometheus_parseTimeSeriesResponse(t *testing.T) { query := backend.DataQuery{ JSON: b, } - tctx := setup() + tctx := setup(true) res, err := execute(tctx, query, qr) require.NoError(t, err) require.Len(t, res, 1) - require.Equal(t, res[0].Name, "1") require.Len(t, res[0].Fields, 2) require.Len(t, res[0].Fields[0].Labels, 0) require.Equal(t, res[0].Fields[0].Name, "Time") - require.Equal(t, res[0].Fields[1].Name, "Value") - require.Equal(t, res[0].Fields[1].Config.DisplayNameFromDS, "1") + require.Equal(t, "1", res[0].Fields[1].Name) // Ensure the timestamps are UTC zoned testValue := res[0].Fields[0].At(0) @@ -397,7 +389,7 @@ type testContext struct { queryData *querydata.QueryData } -func setup() *testContext { +func setup(wideFrames bool) *testContext { tracer, err := tracing.InitializeTracerForTest() if err != nil { panic(err) @@ -414,7 +406,7 @@ func setup() *testContext { queryData, _ := querydata.New( httpProvider, setting.NewCfg(), - &fakeFeatureToggles{enabled: true}, + &fakeFeatureToggles{flags: map[string]bool{"prometheusStreamingJSONParser": true, "prometheusWideSeries": wideFrames}}, tracer, backend.DataSourceInstanceSettings{URL: "http://localhost:9090", JSONData: json.RawMessage(`{"timeInterval": "15s"}`)}, &fakeLogger{}, @@ -427,11 +419,11 @@ func setup() *testContext { } type fakeFeatureToggles struct { - enabled bool + flags map[string]bool } func (f *fakeFeatureToggles) IsEnabled(feature string) bool { - return f.enabled + return f.flags[feature] } type fakeHttpClientProvider struct { diff --git a/pkg/tsdb/prometheus/querydata/response.go b/pkg/tsdb/prometheus/querydata/response.go index 08d4618c4d5..258b06e5edf 100644 --- a/pkg/tsdb/prometheus/querydata/response.go +++ b/pkg/tsdb/prometheus/querydata/response.go @@ -22,20 +22,27 @@ func (s *QueryData) parseResponse(ctx context.Context, q *models.Query, res *htt }() iter := jsoniter.Parse(jsoniter.ConfigDefault, res.Body, 1024) - r := converter.ReadPrometheusStyleResult(iter) + r := converter.ReadPrometheusStyleResult(iter, converter.Options{ + MatrixWideSeries: s.enableWideSeries, + VectorWideSeries: s.enableWideSeries, + }) if r == nil { return nil, fmt.Errorf("received empty response from prometheus") } // The ExecutedQueryString can be viewed in QueryInspector in UI for _, frame := range r.Frames { - addMetadataToFrame(q, frame) + if s.enableWideSeries { + addMetadataToWideFrame(q, frame) + } else { + addMetadataToMultiFrame(q, frame) + } } return r, nil } -func addMetadataToFrame(q *models.Query, frame *data.Frame) { +func addMetadataToMultiFrame(q *models.Query, frame *data.Frame) { if frame.Meta == nil { frame.Meta = &data.FrameMeta{} } @@ -43,16 +50,32 @@ func addMetadataToFrame(q *models.Query, frame *data.Frame) { if len(frame.Fields) < 2 { return } - frame.Name = getName(q, frame) + frame.Name = getName(q, frame.Fields[1]) frame.Fields[0].Config = &data.FieldConfig{Interval: float64(q.Step.Milliseconds())} if frame.Name != "" { frame.Fields[1].Config = &data.FieldConfig{DisplayNameFromDS: frame.Name} } } +func addMetadataToWideFrame(q *models.Query, frame *data.Frame) { + if frame.Meta == nil { + frame.Meta = &data.FrameMeta{} + } + frame.Meta.ExecutedQueryString = executedQueryString(q) + if len(frame.Fields) < 2 { + return + } + frame.Fields[0].Config = &data.FieldConfig{Interval: float64(q.Step.Milliseconds())} + for _, f := range frame.Fields { + if f.Name != data.TimeSeriesTimeFieldName { + f.Name = getName(q, f) + } + } +} + // this is based on the logic from the String() function in github.com/prometheus/common/model.go -func metricNameFromLabels(f *data.Frame) string { - labels := f.Fields[1].Labels +func metricNameFromLabels(f *data.Field) string { + labels := f.Labels metricName, hasName := labels["__name__"] numLabels := len(labels) - 1 if !hasName { @@ -81,9 +104,9 @@ func executedQueryString(q *models.Query) string { return "Expr: " + q.Expr + "\n" + "Step: " + q.Step.String() } -func getName(q *models.Query, frame *data.Frame) string { - labels := frame.Fields[1].Labels - legend := metricNameFromLabels(frame) +func getName(q *models.Query, field *data.Field) string { + labels := field.Labels + legend := metricNameFromLabels(field) if q.LegendFormat == legendFormatAuto && len(labels) > 0 { return "" diff --git a/pkg/tsdb/prometheus/testdata/range_infinity.buffered.result.golden.txt b/pkg/tsdb/prometheus/testdata/range_infinity.buffered.result.golden.txt new file mode 100644 index 00000000000..b4be2c88386 --- /dev/null +++ b/pkg/tsdb/prometheus/testdata/range_infinity.buffered.result.golden.txt @@ -0,0 +1,24 @@ +🌟 This was machine generated. Do not edit. 🌟 + +Frame[0] { + "type": "timeseries-many", + "custom": { + "resultType": "matrix" + }, + "executedQueryString": "Expr: 1 / 0\nStep: 1s" +} +Name: 1 / 0 +Dimensions: 2 Fields by 3 Rows ++-------------------------------+------------------+ +| Name: Time | Name: Value | +| Labels: | Labels: | +| Type: []time.Time | Type: []*float64 | ++-------------------------------+------------------+ +| 2022-01-11 08:25:30 +0000 UTC | +Inf | +| 2022-01-11 08:25:31 +0000 UTC | +Inf | +| 2022-01-11 08:25:32 +0000 UTC | +Inf | ++-------------------------------+------------------+ + + +====== TEST DATA RESPONSE (arrow base64) ====== +FRAME=QVJST1cxAAD/////oAIAABAAAAAAAAoADgAMAAsABAAKAAAAFAAAAAAAAAEEAAoADAAAAAgABAAKAAAACAAAAOAAAAADAAAAUAAAACgAAAAEAAAA/P3//wgAAAAMAAAAAAAAAAAAAAAFAAAAcmVmSWQAAAAc/v//CAAAABAAAAAFAAAAMSAvIDAAAAAEAAAAbmFtZQAAAABA/v//CAAAAHQAAABpAAAAeyJ0eXBlIjoidGltZXNlcmllcy1tYW55IiwiY3VzdG9tIjp7InJlc3VsdFR5cGUiOiJtYXRyaXgifSwiZXhlY3V0ZWRRdWVyeVN0cmluZyI6IkV4cHI6IDEgLyAwXG5TdGVwOiAxcyJ9AAAABAAAAG1ldGEAAAAAAgAAAOwAAAAYAAAAAAASABgAFAATABIADAAAAAgABAASAAAAFAAAAKAAAACgAAAAAAADAaAAAAADAAAAUAAAACwAAAAEAAAAEP///wgAAAAQAAAABQAAAFZhbHVlAAAABAAAAG5hbWUAAAAANP///wgAAAAMAAAAAgAAAHt9AAAGAAAAbGFiZWxzAABU////CAAAACgAAAAdAAAAeyJkaXNwbGF5TmFtZUZyb21EUyI6IjEgLyAwIn0AAAAGAAAAY29uZmlnAAAAAAAAVv///wAAAgAFAAAAVmFsdWUAEgAYABQAAAATAAwAAAAIAAQAEgAAABQAAAB4AAAAgAAAAAAAAAqAAAAAAgAAADQAAAAEAAAA3P///wgAAAAQAAAABAAAAFRpbWUAAAAABAAAAG5hbWUAAAAACAAMAAgABAAIAAAACAAAABwAAAARAAAAeyJpbnRlcnZhbCI6MTAwMH0AAAAGAAAAY29uZmlnAAAAAAAAAAAGAAgABgAGAAAAAAADAAQAAABUaW1lAAAAAP////+4AAAAFAAAAAAAAAAMABYAFAATAAwABAAMAAAAMAAAAAAAAAAUAAAAAAAAAwQACgAYAAwACAAEAAoAAAAUAAAAWAAAAAMAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAAAAAAAIAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAABEFRTUKckWAA6wT9QpyRYA2EqL1CnJFgAAAAAAAPB/AAAAAAAA8H8AAAAAAADwfxAAAAAMABQAEgAMAAgABAAMAAAAEAAAACwAAAA8AAAAAAAEAAEAAACwAgAAAAAAAMAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoADAAAAAgABAAKAAAACAAAAOAAAAADAAAAUAAAACgAAAAEAAAA/P3//wgAAAAMAAAAAAAAAAAAAAAFAAAAcmVmSWQAAAAc/v//CAAAABAAAAAFAAAAMSAvIDAAAAAEAAAAbmFtZQAAAABA/v//CAAAAHQAAABpAAAAeyJ0eXBlIjoidGltZXNlcmllcy1tYW55IiwiY3VzdG9tIjp7InJlc3VsdFR5cGUiOiJtYXRyaXgifSwiZXhlY3V0ZWRRdWVyeVN0cmluZyI6IkV4cHI6IDEgLyAwXG5TdGVwOiAxcyJ9AAAABAAAAG1ldGEAAAAAAgAAAOwAAAAYAAAAAAASABgAFAATABIADAAAAAgABAASAAAAFAAAAKAAAACgAAAAAAADAaAAAAADAAAAUAAAACwAAAAEAAAAEP///wgAAAAQAAAABQAAAFZhbHVlAAAABAAAAG5hbWUAAAAANP///wgAAAAMAAAAAgAAAHt9AAAGAAAAbGFiZWxzAABU////CAAAACgAAAAdAAAAeyJkaXNwbGF5TmFtZUZyb21EUyI6IjEgLyAwIn0AAAAGAAAAY29uZmlnAAAAAAAAVv///wAAAgAFAAAAVmFsdWUAEgAYABQAAAATAAwAAAAIAAQAEgAAABQAAAB4AAAAgAAAAAAAAAqAAAAAAgAAADQAAAAEAAAA3P///wgAAAAQAAAABAAAAFRpbWUAAAAABAAAAG5hbWUAAAAACAAMAAgABAAIAAAACAAAABwAAAARAAAAeyJpbnRlcnZhbCI6MTAwMH0AAAAGAAAAY29uZmlnAAAAAAAAAAAGAAgABgAGAAAAAAADAAQAAABUaW1lAAAAANACAABBUlJPVzE= diff --git a/pkg/tsdb/prometheus/testdata/range_infinity.result.streaming-wide.golden.json b/pkg/tsdb/prometheus/testdata/range_infinity.result.streaming-wide.golden.json new file mode 100644 index 00000000000..06fd2e55e03 --- /dev/null +++ b/pkg/tsdb/prometheus/testdata/range_infinity.result.streaming-wide.golden.json @@ -0,0 +1,60 @@ +{ + "frames": [ + { + "schema": { + "meta": { + "type": "timeseries-wide", + "custom": { + "resultType": "matrix" + }, + "executedQueryString": "Expr: 1 / 0\nStep: 1s" + }, + "fields": [ + { + "name": "Time", + "type": "time", + "typeInfo": { + "frame": "time.Time" + }, + "config": { + "interval": 1000 + } + }, + { + "name": "1 / 0", + "type": "number", + "typeInfo": { + "frame": "float64", + "nullable": true + }, + "labels": {} + } + ] + }, + "data": { + "values": [ + [ + 1641889530000, + 1641889531000, + 1641889532000 + ], + [ + null, + null, + null + ] + ], + "entities": [ + null, + { + "Inf": [ + 0, + 1, + 2 + ] + } + ] + } + } + ] +} \ No newline at end of file diff --git a/pkg/tsdb/prometheus/testdata/range_infinity.result.streaming-wide.golden.txt b/pkg/tsdb/prometheus/testdata/range_infinity.result.streaming-wide.golden.txt new file mode 100644 index 00000000000..00be2bd136f --- /dev/null +++ b/pkg/tsdb/prometheus/testdata/range_infinity.result.streaming-wide.golden.txt @@ -0,0 +1,24 @@ +🌟 This was machine generated. Do not edit. 🌟 + +Frame[0] { + "type": "timeseries-wide", + "custom": { + "resultType": "matrix" + }, + "executedQueryString": "Expr: 1 / 0\nStep: 1s" +} +Name: +Dimensions: 2 Fields by 3 Rows ++-------------------------------+------------------+ +| Name: Time | Name: 1 / 0 | +| Labels: | Labels: | +| Type: []time.Time | Type: []*float64 | ++-------------------------------+------------------+ +| 2022-01-11 08:25:30 +0000 UTC | +Inf | +| 2022-01-11 08:25:31 +0000 UTC | +Inf | +| 2022-01-11 08:25:32 +0000 UTC | +Inf | ++-------------------------------+------------------+ + + +====== TEST DATA RESPONSE (arrow base64) ====== +FRAME=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 diff --git a/pkg/tsdb/prometheus/testdata/range_missing.buffered.result.golden.txt b/pkg/tsdb/prometheus/testdata/range_missing.buffered.result.golden.txt new file mode 100644 index 00000000000..0438e6885a6 --- /dev/null +++ b/pkg/tsdb/prometheus/testdata/range_missing.buffered.result.golden.txt @@ -0,0 +1,24 @@ +🌟 This was machine generated. Do not edit. 🌟 + +Frame[0] { + "type": "timeseries-many", + "custom": { + "resultType": "matrix" + }, + "executedQueryString": "Expr: test1\nStep: 1s" +} +Name: go_goroutines{job="prometheus"} +Dimensions: 2 Fields by 3 Rows ++-------------------------------+------------------------------------------------+ +| Name: Time | Name: Value | +| Labels: | Labels: __name__=go_goroutines, job=prometheus | +| Type: []time.Time | Type: []*float64 | ++-------------------------------+------------------------------------------------+ +| 2022-01-11 08:25:33 +0000 UTC | 21 | +| 2022-01-11 08:25:34 +0000 UTC | 32 | +| 2022-01-11 08:25:37 +0000 UTC | 43 | ++-------------------------------+------------------------------------------------+ + + +====== TEST DATA RESPONSE (arrow base64) ====== +FRAME=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 diff --git a/pkg/tsdb/prometheus/testdata/range_missing.result.streaming-wide.golden.json b/pkg/tsdb/prometheus/testdata/range_missing.result.streaming-wide.golden.json new file mode 100644 index 00000000000..21d45174fd2 --- /dev/null +++ b/pkg/tsdb/prometheus/testdata/range_missing.result.streaming-wide.golden.json @@ -0,0 +1,53 @@ +{ + "frames": [ + { + "schema": { + "meta": { + "type": "timeseries-wide", + "custom": { + "resultType": "matrix" + }, + "executedQueryString": "Expr: test1\nStep: 1s" + }, + "fields": [ + { + "name": "Time", + "type": "time", + "typeInfo": { + "frame": "time.Time" + }, + "config": { + "interval": 1000 + } + }, + { + "name": "go_goroutines{job=\"prometheus\"}", + "type": "number", + "typeInfo": { + "frame": "float64", + "nullable": true + }, + "labels": { + "__name__": "go_goroutines", + "job": "prometheus" + } + } + ] + }, + "data": { + "values": [ + [ + 1641889533000, + 1641889534000, + 1641889537000 + ], + [ + 21, + 32, + 43 + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/pkg/tsdb/prometheus/testdata/range_missing.result.streaming-wide.golden.txt b/pkg/tsdb/prometheus/testdata/range_missing.result.streaming-wide.golden.txt new file mode 100644 index 00000000000..43f07ba119d --- /dev/null +++ b/pkg/tsdb/prometheus/testdata/range_missing.result.streaming-wide.golden.txt @@ -0,0 +1,24 @@ +🌟 This was machine generated. Do not edit. 🌟 + +Frame[0] { + "type": "timeseries-wide", + "custom": { + "resultType": "matrix" + }, + "executedQueryString": "Expr: test1\nStep: 1s" +} +Name: +Dimensions: 2 Fields by 3 Rows ++-------------------------------+------------------------------------------------+ +| Name: Time | Name: go_goroutines{job="prometheus"} | +| Labels: | Labels: __name__=go_goroutines, job=prometheus | +| Type: []time.Time | Type: []*float64 | ++-------------------------------+------------------------------------------------+ +| 2022-01-11 08:25:33 +0000 UTC | 21 | +| 2022-01-11 08:25:34 +0000 UTC | 32 | +| 2022-01-11 08:25:37 +0000 UTC | 43 | ++-------------------------------+------------------------------------------------+ + + +====== TEST DATA RESPONSE (arrow base64) ====== +FRAME=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 diff --git a/pkg/tsdb/prometheus/testdata/range_nan.buffered.result.golden.txt b/pkg/tsdb/prometheus/testdata/range_nan.buffered.result.golden.txt new file mode 100644 index 00000000000..e8837a0947d --- /dev/null +++ b/pkg/tsdb/prometheus/testdata/range_nan.buffered.result.golden.txt @@ -0,0 +1,24 @@ +🌟 This was machine generated. Do not edit. 🌟 + +Frame[0] { + "type": "timeseries-many", + "custom": { + "resultType": "matrix" + }, + "executedQueryString": "Expr: \nStep: 1s" +} +Name: {handler="/api/v1/query_range", job="prometheus"} +Dimensions: 2 Fields by 3 Rows ++-------------------------------+-----------------------------------------------------+ +| Name: Time | Name: Value | +| Labels: | Labels: handler=/api/v1/query_range, job=prometheus | +| Type: []time.Time | Type: []*float64 | ++-------------------------------+-----------------------------------------------------+ +| 2022-01-11 08:25:30 +0000 UTC | null | +| 2022-01-11 08:25:31 +0000 UTC | null | +| 2022-01-11 08:25:32 +0000 UTC | null | ++-------------------------------+-----------------------------------------------------+ + + +====== TEST DATA RESPONSE (arrow base64) ====== +FRAME=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 diff --git a/pkg/tsdb/prometheus/testdata/range_nan.result.streaming-wide.golden.json b/pkg/tsdb/prometheus/testdata/range_nan.result.streaming-wide.golden.json new file mode 100644 index 00000000000..9743b2b9727 --- /dev/null +++ b/pkg/tsdb/prometheus/testdata/range_nan.result.streaming-wide.golden.json @@ -0,0 +1,63 @@ +{ + "frames": [ + { + "schema": { + "meta": { + "type": "timeseries-wide", + "custom": { + "resultType": "matrix" + }, + "executedQueryString": "Expr: \nStep: 1s" + }, + "fields": [ + { + "name": "Time", + "type": "time", + "typeInfo": { + "frame": "time.Time" + }, + "config": { + "interval": 1000 + } + }, + { + "name": "{handler=\"/api/v1/query_range\", job=\"prometheus\"}", + "type": "number", + "typeInfo": { + "frame": "float64", + "nullable": true + }, + "labels": { + "handler": "/api/v1/query_range", + "job": "prometheus" + } + } + ] + }, + "data": { + "values": [ + [ + 1641889530000, + 1641889531000, + 1641889532000 + ], + [ + null, + null, + null + ] + ], + "entities": [ + null, + { + "NaN": [ + 0, + 1, + 2 + ] + } + ] + } + } + ] +} \ No newline at end of file diff --git a/pkg/tsdb/prometheus/testdata/range_nan.result.streaming-wide.golden.txt b/pkg/tsdb/prometheus/testdata/range_nan.result.streaming-wide.golden.txt new file mode 100644 index 00000000000..0febe260032 --- /dev/null +++ b/pkg/tsdb/prometheus/testdata/range_nan.result.streaming-wide.golden.txt @@ -0,0 +1,24 @@ +🌟 This was machine generated. Do not edit. 🌟 + +Frame[0] { + "type": "timeseries-wide", + "custom": { + "resultType": "matrix" + }, + "executedQueryString": "Expr: \nStep: 1s" +} +Name: +Dimensions: 2 Fields by 3 Rows ++-------------------------------+---------------------------------------------------------+ +| Name: Time | Name: {handler="/api/v1/query_range", job="prometheus"} | +| Labels: | Labels: handler=/api/v1/query_range, job=prometheus | +| Type: []time.Time | Type: []*float64 | ++-------------------------------+---------------------------------------------------------+ +| 2022-01-11 08:25:30 +0000 UTC | NaN | +| 2022-01-11 08:25:31 +0000 UTC | NaN | +| 2022-01-11 08:25:32 +0000 UTC | NaN | ++-------------------------------+---------------------------------------------------------+ + + +====== TEST DATA RESPONSE (arrow base64) ====== +FRAME=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 diff --git a/pkg/tsdb/prometheus/testdata/range_simple.buffered.result.golden.txt b/pkg/tsdb/prometheus/testdata/range_simple.buffered.result.golden.txt new file mode 100644 index 00000000000..0c9d0213f62 --- /dev/null +++ b/pkg/tsdb/prometheus/testdata/range_simple.buffered.result.golden.txt @@ -0,0 +1,46 @@ +🌟 This was machine generated. Do not edit. 🌟 + +Frame[0] { + "type": "timeseries-many", + "custom": { + "resultType": "matrix" + }, + "executedQueryString": "Expr: \nStep: 1s" +} +Name: prometheus_http_requests_total{code="200", handler="/api/v1/query_range", job="prometheus"} +Dimensions: 2 Fields by 3 Rows ++-----------------------------------+--------------------------------------------------------------------------------------------------------+ +| Name: Time | Name: Value | +| Labels: | Labels: __name__=prometheus_http_requests_total, code=200, handler=/api/v1/query_range, job=prometheus | +| Type: []time.Time | Type: []*float64 | ++-----------------------------------+--------------------------------------------------------------------------------------------------------+ +| 2022-01-11 08:25:30.123 +0000 UTC | 21 | +| 2022-01-11 08:25:31.123 +0000 UTC | 32 | +| 2022-01-11 08:25:32.123 +0000 UTC | 43 | ++-----------------------------------+--------------------------------------------------------------------------------------------------------+ + + + +Frame[1] { + "type": "timeseries-many", + "custom": { + "resultType": "matrix" + }, + "executedQueryString": "Expr: \nStep: 1s" +} +Name: prometheus_http_requests_total{code="400", handler="/api/v1/query_range", job="prometheus"} +Dimensions: 2 Fields by 3 Rows ++-----------------------------------+--------------------------------------------------------------------------------------------------------+ +| Name: Time | Name: Value | +| Labels: | Labels: __name__=prometheus_http_requests_total, code=400, handler=/api/v1/query_range, job=prometheus | +| Type: []time.Time | Type: []*float64 | ++-----------------------------------+--------------------------------------------------------------------------------------------------------+ +| 2022-01-11 08:25:30.123 +0000 UTC | 54 | +| 2022-01-11 08:25:31.123 +0000 UTC | 65 | +| 2022-01-11 08:25:32.123 +0000 UTC | 76 | ++-----------------------------------+--------------------------------------------------------------------------------------------------------+ + + +====== TEST DATA RESPONSE (arrow base64) ====== +FRAME=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 +FRAME=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 diff --git a/pkg/tsdb/prometheus/testdata/range_simple.result.golden.json b/pkg/tsdb/prometheus/testdata/range_simple.result.golden.json index 00e6abd5097..4a132324ed8 100644 --- a/pkg/tsdb/prometheus/testdata/range_simple.result.golden.json +++ b/pkg/tsdb/prometheus/testdata/range_simple.result.golden.json @@ -99,12 +99,10 @@ "values": [ [ 1641889530123, - 1641889531123, 1641889532123 ], [ 54, - 65, 76 ] ] diff --git a/pkg/tsdb/prometheus/testdata/range_simple.result.golden.txt b/pkg/tsdb/prometheus/testdata/range_simple.result.golden.txt index 0c9d0213f62..aa173aa0149 100644 --- a/pkg/tsdb/prometheus/testdata/range_simple.result.golden.txt +++ b/pkg/tsdb/prometheus/testdata/range_simple.result.golden.txt @@ -29,18 +29,17 @@ Frame[1] { "executedQueryString": "Expr: \nStep: 1s" } Name: prometheus_http_requests_total{code="400", handler="/api/v1/query_range", job="prometheus"} -Dimensions: 2 Fields by 3 Rows +Dimensions: 2 Fields by 2 Rows +-----------------------------------+--------------------------------------------------------------------------------------------------------+ | Name: Time | Name: Value | | Labels: | Labels: __name__=prometheus_http_requests_total, code=400, handler=/api/v1/query_range, job=prometheus | | Type: []time.Time | Type: []*float64 | +-----------------------------------+--------------------------------------------------------------------------------------------------------+ | 2022-01-11 08:25:30.123 +0000 UTC | 54 | -| 2022-01-11 08:25:31.123 +0000 UTC | 65 | | 2022-01-11 08:25:32.123 +0000 UTC | 76 | +-----------------------------------+--------------------------------------------------------------------------------------------------------+ ====== TEST DATA RESPONSE (arrow base64) ====== FRAME=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 -FRAME=QVJST1cxAAD/////uAMAABAAAAAAAAoADgAMAAsABAAKAAAAFAAAAAAAAAEEAAoADAAAAAgABAAKAAAACAAAADABAAADAAAApAAAACgAAAAEAAAA5Pz//wgAAAAMAAAAAAAAAAAAAAAFAAAAcmVmSWQAAAAE/f//CAAAAGQAAABbAAAAcHJvbWV0aGV1c19odHRwX3JlcXVlc3RzX3RvdGFse2NvZGU9IjQwMCIsIGhhbmRsZXI9Ii9hcGkvdjEvcXVlcnlfcmFuZ2UiLCBqb2I9InByb21ldGhldXMifQAEAAAAbmFtZQAAAAB8/f//CAAAAHAAAABkAAAAeyJ0eXBlIjoidGltZXNlcmllcy1tYW55IiwiY3VzdG9tIjp7InJlc3VsdFR5cGUiOiJtYXRyaXgifSwiZXhlY3V0ZWRRdWVyeVN0cmluZyI6IkV4cHI6IFxuU3RlcDogMXMifQAAAAAEAAAAbWV0YQAAAAACAAAAtAEAABgAAAAAABIAGAAUABMAEgAMAAAACAAEABIAAAAUAAAAaAEAAGgBAAAAAAMBaAEAAAMAAAC8AAAALAAAAAQAAABI/v//CAAAABAAAAAFAAAAVmFsdWUAAAAEAAAAbmFtZQAAAABs/v//CAAAAHgAAABtAAAAeyJfX25hbWVfXyI6InByb21ldGhldXNfaHR0cF9yZXF1ZXN0c190b3RhbCIsImNvZGUiOiI0MDAiLCJoYW5kbGVyIjoiL2FwaS92MS9xdWVyeV9yYW5nZSIsImpvYiI6InByb21ldGhldXMifQAAAAYAAABsYWJlbHMAAPj+//8IAAAAhAAAAHkAAAB7ImRpc3BsYXlOYW1lRnJvbURTIjoicHJvbWV0aGV1c19odHRwX3JlcXVlc3RzX3RvdGFse2NvZGU9XCI0MDBcIiwgaGFuZGxlcj1cIi9hcGkvdjEvcXVlcnlfcmFuZ2VcIiwgam9iPVwicHJvbWV0aGV1c1wifSJ9AAAABgAAAGNvbmZpZwAAAAAAAFb///8AAAIABQAAAFZhbHVlABIAGAAUAAAAEwAMAAAACAAEABIAAAAUAAAAeAAAAIAAAAAAAAAKgAAAAAIAAAA0AAAABAAAANz///8IAAAAEAAAAAQAAABUaW1lAAAAAAQAAABuYW1lAAAAAAgADAAIAAQACAAAAAgAAAAcAAAAEQAAAHsiaW50ZXJ2YWwiOjEwMDB9AAAABgAAAGNvbmZpZwAAAAAAAAAABgAIAAYABgAAAAAAAwAEAAAAVGltZQAAAAD/////uAAAABQAAAAAAAAADAAWABQAEwAMAAQADAAAADAAAAAAAAAAFAAAAAAAAAMEAAoAGAAMAAgABAAKAAAAFAAAAFgAAAADAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAYAAAAAAAAAAAAAAACAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAADAGGob1CnJFsDiBFfUKckWwKyfktQpyRYAAAAAAABLQAAAAAAAQFBAAAAAAAAAU0AQAAAADAAUABIADAAIAAQADAAAABAAAAAsAAAAPAAAAAAABAABAAAAyAMAAAAAAADAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAwAAAAIAAQACgAAAAgAAAAwAQAAAwAAAKQAAAAoAAAABAAAAOT8//8IAAAADAAAAAAAAAAAAAAABQAAAHJlZklkAAAABP3//wgAAABkAAAAWwAAAHByb21ldGhldXNfaHR0cF9yZXF1ZXN0c190b3RhbHtjb2RlPSI0MDAiLCBoYW5kbGVyPSIvYXBpL3YxL3F1ZXJ5X3JhbmdlIiwgam9iPSJwcm9tZXRoZXVzIn0ABAAAAG5hbWUAAAAAfP3//wgAAABwAAAAZAAAAHsidHlwZSI6InRpbWVzZXJpZXMtbWFueSIsImN1c3RvbSI6eyJyZXN1bHRUeXBlIjoibWF0cml4In0sImV4ZWN1dGVkUXVlcnlTdHJpbmciOiJFeHByOiBcblN0ZXA6IDFzIn0AAAAABAAAAG1ldGEAAAAAAgAAALQBAAAYAAAAAAASABgAFAATABIADAAAAAgABAASAAAAFAAAAGgBAABoAQAAAAADAWgBAAADAAAAvAAAACwAAAAEAAAASP7//wgAAAAQAAAABQAAAFZhbHVlAAAABAAAAG5hbWUAAAAAbP7//wgAAAB4AAAAbQAAAHsiX19uYW1lX18iOiJwcm9tZXRoZXVzX2h0dHBfcmVxdWVzdHNfdG90YWwiLCJjb2RlIjoiNDAwIiwiaGFuZGxlciI6Ii9hcGkvdjEvcXVlcnlfcmFuZ2UiLCJqb2IiOiJwcm9tZXRoZXVzIn0AAAAGAAAAbGFiZWxzAAD4/v//CAAAAIQAAAB5AAAAeyJkaXNwbGF5TmFtZUZyb21EUyI6InByb21ldGhldXNfaHR0cF9yZXF1ZXN0c190b3RhbHtjb2RlPVwiNDAwXCIsIGhhbmRsZXI9XCIvYXBpL3YxL3F1ZXJ5X3JhbmdlXCIsIGpvYj1cInByb21ldGhldXNcIn0ifQAAAAYAAABjb25maWcAAAAAAABW////AAACAAUAAABWYWx1ZQASABgAFAAAABMADAAAAAgABAASAAAAFAAAAHgAAACAAAAAAAAACoAAAAACAAAANAAAAAQAAADc////CAAAABAAAAAEAAAAVGltZQAAAAAEAAAAbmFtZQAAAAAIAAwACAAEAAgAAAAIAAAAHAAAABEAAAB7ImludGVydmFsIjoxMDAwfQAAAAYAAABjb25maWcAAAAAAAAAAAYACAAGAAYAAAAAAAMABAAAAFRpbWUAAAAA6AMAAEFSUk9XMQ== +FRAME=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 diff --git a/pkg/tsdb/prometheus/testdata/range_simple.result.json b/pkg/tsdb/prometheus/testdata/range_simple.result.json index 4702646eba0..cb77311b908 100644 --- a/pkg/tsdb/prometheus/testdata/range_simple.result.json +++ b/pkg/tsdb/prometheus/testdata/range_simple.result.json @@ -25,7 +25,6 @@ }, "values": [ [1641889530.123, "54"], - [1641889531.123, "65"], [1641889532.123, "76"] ] } diff --git a/pkg/tsdb/prometheus/testdata/range_simple.result.streaming-wide.golden.json b/pkg/tsdb/prometheus/testdata/range_simple.result.streaming-wide.golden.json new file mode 100644 index 00000000000..d438a646dc2 --- /dev/null +++ b/pkg/tsdb/prometheus/testdata/range_simple.result.streaming-wide.golden.json @@ -0,0 +1,74 @@ +{ + "frames": [ + { + "schema": { + "meta": { + "type": "timeseries-wide", + "custom": { + "resultType": "matrix" + }, + "executedQueryString": "Expr: \nStep: 1s" + }, + "fields": [ + { + "name": "Time", + "type": "time", + "typeInfo": { + "frame": "time.Time" + }, + "config": { + "interval": 1000 + } + }, + { + "name": "prometheus_http_requests_total{code=\"200\", handler=\"/api/v1/query_range\", job=\"prometheus\"}", + "type": "number", + "typeInfo": { + "frame": "float64", + "nullable": true + }, + "labels": { + "__name__": "prometheus_http_requests_total", + "code": "200", + "handler": "/api/v1/query_range", + "job": "prometheus" + } + }, + { + "name": "prometheus_http_requests_total{code=\"400\", handler=\"/api/v1/query_range\", job=\"prometheus\"}", + "type": "number", + "typeInfo": { + "frame": "float64", + "nullable": true + }, + "labels": { + "__name__": "prometheus_http_requests_total", + "code": "400", + "handler": "/api/v1/query_range", + "job": "prometheus" + } + } + ] + }, + "data": { + "values": [ + [ + 1641889530123, + 1641889531123, + 1641889532123 + ], + [ + 21, + 32, + 43 + ], + [ + 54, + null, + 76 + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/pkg/tsdb/prometheus/testdata/range_simple.result.streaming-wide.golden.txt b/pkg/tsdb/prometheus/testdata/range_simple.result.streaming-wide.golden.txt new file mode 100644 index 00000000000..b0d7e4c2bb7 --- /dev/null +++ b/pkg/tsdb/prometheus/testdata/range_simple.result.streaming-wide.golden.txt @@ -0,0 +1,24 @@ +🌟 This was machine generated. Do not edit. 🌟 + +Frame[0] { + "type": "timeseries-wide", + "custom": { + "resultType": "matrix" + }, + "executedQueryString": "Expr: \nStep: 1s" +} +Name: +Dimensions: 3 Fields by 3 Rows ++-----------------------------------+--------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------+ +| Name: Time | Name: prometheus_http_requests_total{code="200", handler="/api/v1/query_range", job="prometheus"} | Name: prometheus_http_requests_total{code="400", handler="/api/v1/query_range", job="prometheus"} | +| Labels: | Labels: __name__=prometheus_http_requests_total, code=200, handler=/api/v1/query_range, job=prometheus | Labels: __name__=prometheus_http_requests_total, code=400, handler=/api/v1/query_range, job=prometheus | +| Type: []time.Time | Type: []*float64 | Type: []*float64 | ++-----------------------------------+--------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------+ +| 2022-01-11 08:25:30.123 +0000 UTC | 21 | 54 | +| 2022-01-11 08:25:31.123 +0000 UTC | 32 | null | +| 2022-01-11 08:25:32.123 +0000 UTC | 43 | 76 | ++-----------------------------------+--------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------+ + + +====== TEST DATA RESPONSE (arrow base64) ====== +FRAME=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AAAAANT7//8IAAAAcAAAAGQAAAB7InR5cGUiOiJ0aW1lc2VyaWVzLXdpZGUiLCJjdXN0b20iOnsicmVzdWx0VHlwZSI6Im1hdHJpeCJ9LCJleGVjdXRlZFF1ZXJ5U3RyaW5nIjoiRXhwcjogXG5TdGVwOiAxcyJ9AAAAAAQAAABtZXRhAAAAAAMAAABcAwAAsAEAAAQAAABq/v//FAAAACABAAAgAQAAAAADASABAAACAAAAgAAAAAQAAACM/P//CAAAAGQAAABbAAAAcHJvbWV0aGV1c19odHRwX3JlcXVlc3RzX3RvdGFse2NvZGU9IjQwMCIsIGhhbmRsZXI9Ii9hcGkvdjEvcXVlcnlfcmFuZ2UiLCBqb2I9InByb21ldGhldXMifQAEAAAAbmFtZQAAAAAE/f//CAAAAHgAAABtAAAAeyJfX25hbWVfXyI6InByb21ldGhldXNfaHR0cF9yZXF1ZXN0c190b3RhbCIsImNvZGUiOiI0MDAiLCJoYW5kbGVyIjoiL2FwaS92MS9xdWVyeV9yYW5nZSIsImpvYiI6InByb21ldGhldXMifQAAAAYAAABsYWJlbHMAAAAAAABW/f//AAACAFsAAABwcm9tZXRoZXVzX2h0dHBfcmVxdWVzdHNfdG90YWx7Y29kZT0iNDAwIiwgaGFuZGxlcj0iL2FwaS92MS9xdWVyeV9yYW5nZSIsIGpvYj0icHJvbWV0aGV1cyJ9AAAAEgAYABQAEwASAAwAAAAIAAQAEgAAABQAAAAgAQAAIAEAAAAAAwEgAQAAAgAAAIAAAAAEAAAANP7//wgAAABkAAAAWwAAAHByb21ldGhldXNfaHR0cF9yZXF1ZXN0c190b3RhbHtjb2RlPSIyMDAiLCBoYW5kbGVyPSIvYXBpL3YxL3F1ZXJ5X3JhbmdlIiwgam9iPSJwcm9tZXRoZXVzIn0ABAAAAG5hbWUAAAAArP7//wgAAAB4AAAAbQAAAHsiX19uYW1lX18iOiJwcm9tZXRoZXVzX2h0dHBfcmVxdWVzdHNfdG90YWwiLCJjb2RlIjoiMjAwIiwiaGFuZGxlciI6Ii9hcGkvdjEvcXVlcnlfcmFuZ2UiLCJqb2IiOiJwcm9tZXRoZXVzIn0AAAAGAAAAbGFiZWxzAAAAAAAA/v7//wAAAgBbAAAAcHJvbWV0aGV1c19odHRwX3JlcXVlc3RzX3RvdGFse2NvZGU9IjIwMCIsIGhhbmRsZXI9Ii9hcGkvdjEvcXVlcnlfcmFuZ2UiLCBqb2I9InByb21ldGhldXMifQAAABIAGAAUAAAAEwAMAAAACAAEABIAAAAUAAAAeAAAAIAAAAAAAAAKgAAAAAIAAAA0AAAABAAAANz///8IAAAAEAAAAAQAAABUaW1lAAAAAAQAAABuYW1lAAAAAAgADAAIAAQACAAAAAgAAAAcAAAAEQAAAHsiaW50ZXJ2YWwiOjEwMDB9AAAABgAAAGNvbmZpZwAAAAAAAAAABgAIAAYABgAAAAAAAwAEAAAAVGltZQAAAAA4BQAAQVJST1cx diff --git a/pkg/tsdb/prometheus/testdata/range_simple.result.streaming.golden.json b/pkg/tsdb/prometheus/testdata/range_simple.result.streaming.golden.json index 4a403d37bd1..0646fa5240d 100644 --- a/pkg/tsdb/prometheus/testdata/range_simple.result.streaming.golden.json +++ b/pkg/tsdb/prometheus/testdata/range_simple.result.streaming.golden.json @@ -97,12 +97,10 @@ "values": [ [ 1641889530123, - 1641889531123, 1641889532123 ], [ 54, - 65, 76 ] ] diff --git a/pkg/tsdb/prometheus/testdata/range_simple.result.streaming.golden.txt b/pkg/tsdb/prometheus/testdata/range_simple.result.streaming.golden.txt index c24f960235c..9856f08b4dc 100644 --- a/pkg/tsdb/prometheus/testdata/range_simple.result.streaming.golden.txt +++ b/pkg/tsdb/prometheus/testdata/range_simple.result.streaming.golden.txt @@ -29,18 +29,17 @@ Frame[1] { "executedQueryString": "Expr: \nStep: 1s" } Name: prometheus_http_requests_total{code="400", handler="/api/v1/query_range", job="prometheus"} -Dimensions: 2 Fields by 3 Rows +Dimensions: 2 Fields by 2 Rows +-----------------------------------+--------------------------------------------------------------------------------------------------------+ | Name: Time | Name: Value | | Labels: | Labels: __name__=prometheus_http_requests_total, code=400, handler=/api/v1/query_range, job=prometheus | | Type: []time.Time | Type: []float64 | +-----------------------------------+--------------------------------------------------------------------------------------------------------+ | 2022-01-11 08:25:30.123 +0000 UTC | 54 | -| 2022-01-11 08:25:31.123 +0000 UTC | 65 | | 2022-01-11 08:25:32.123 +0000 UTC | 76 | +-----------------------------------+--------------------------------------------------------------------------------------------------------+ ====== TEST DATA RESPONSE (arrow base64) ====== FRAME=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 -FRAME=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 +FRAME=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 diff --git a/pkg/util/converter/prom.go b/pkg/util/converter/prom.go index c0717926fee..4f74f7ed957 100644 --- a/pkg/util/converter/prom.go +++ b/pkg/util/converter/prom.go @@ -16,8 +16,13 @@ func logf(format string, a ...interface{}) { //fmt.Printf(format, a...) } +type Options struct { + MatrixWideSeries bool + VectorWideSeries bool +} + // ReadPrometheusStyleResult will read results from a prometheus or loki server and return data frames -func ReadPrometheusStyleResult(iter *jsoniter.Iterator) *backend.DataResponse { +func ReadPrometheusStyleResult(iter *jsoniter.Iterator, opt Options) *backend.DataResponse { var rsp *backend.DataResponse status := "unknown" errorType := "" @@ -30,7 +35,7 @@ func ReadPrometheusStyleResult(iter *jsoniter.Iterator) *backend.DataResponse { status = iter.ReadString() case "data": - rsp = readPrometheusData(iter) + rsp = readPrometheusData(iter, opt) case "error": err = iter.ReadString() @@ -84,7 +89,7 @@ func readWarnings(iter *jsoniter.Iterator) []data.Notice { return warnings } -func readPrometheusData(iter *jsoniter.Iterator) *backend.DataResponse { +func readPrometheusData(iter *jsoniter.Iterator, opt Options) *backend.DataResponse { t := iter.WhatIsNext() if t == jsoniter.ArrayValue { return readArrayData(iter) @@ -107,9 +112,17 @@ func readPrometheusData(iter *jsoniter.Iterator) *backend.DataResponse { case "result": switch resultType { case "matrix": - rsp = readMatrixOrVector(iter, resultType) + if opt.MatrixWideSeries { + rsp = readMatrixOrVectorWide(iter, resultType) + } else { + rsp = readMatrixOrVectorMulti(iter, resultType) + } case "vector": - rsp = readMatrixOrVector(iter, resultType) + if opt.VectorWideSeries { + rsp = readMatrixOrVectorWide(iter, resultType) + } else { + rsp = readMatrixOrVectorMulti(iter, resultType) + } case "streams": rsp = readStream(iter) case "string": @@ -348,7 +361,113 @@ func readScalar(iter *jsoniter.Iterator) *backend.DataResponse { } } -func readMatrixOrVector(iter *jsoniter.Iterator, resultType string) *backend.DataResponse { +func readMatrixOrVectorWide(iter *jsoniter.Iterator, resultType string) *backend.DataResponse { + rowIdx := 0 + timeMap := map[int64]int{} + timeField := data.NewFieldFromFieldType(data.FieldTypeTime, 0) + timeField.Name = data.TimeSeriesTimeFieldName + frame := data.NewFrame("", timeField) + frame.Meta = &data.FrameMeta{ + Type: data.FrameTypeTimeSeriesWide, + Custom: resultTypeToCustomMeta(resultType), + } + rsp := &backend.DataResponse{ + Frames: []*data.Frame{}, + } + + for iter.ReadArray() { + valueField := data.NewFieldFromFieldType(data.FieldTypeNullableFloat64, frame.Rows()) + valueField.Name = data.TimeSeriesValueFieldName + valueField.Labels = data.Labels{} + frame.Fields = append(frame.Fields, valueField) + + var histogram *histogramInfo + + for l1Field := iter.ReadObject(); l1Field != ""; l1Field = iter.ReadObject() { + switch l1Field { + case "metric": + iter.ReadVal(&valueField.Labels) + + case "value": + timeMap, rowIdx = addValuePairToFrame(frame, timeMap, rowIdx, iter) + + // nolint:goconst + case "values": + for iter.ReadArray() { + timeMap, rowIdx = addValuePairToFrame(frame, timeMap, rowIdx, iter) + } + + case "histogram": + if histogram == nil { + histogram = newHistogramInfo() + } + err := readHistogram(iter, histogram) + if err != nil { + rsp.Error = err + } + + case "histograms": + if histogram == nil { + histogram = newHistogramInfo() + } + for iter.ReadArray() { + err := readHistogram(iter, histogram) + if err != nil { + rsp.Error = err + } + } + + default: + iter.Skip() + logf("readMatrixOrVector: %s\n", l1Field) + } + } + + if histogram != nil { + histogram.yMin.Labels = valueField.Labels + frame := data.NewFrame(valueField.Name, histogram.time, histogram.yMin, histogram.yMax, histogram.count, histogram.yLayout) + frame.Meta = &data.FrameMeta{ + Type: "heatmap-cells-sparse", + } + if frame.Name == data.TimeSeriesValueFieldName { + frame.Name = "" // only set the name if useful + } + rsp.Frames = append(rsp.Frames, frame) + } + } + + if len(rsp.Frames) == 0 { + rsp.Frames = append(rsp.Frames, frame) + } + + return rsp +} + +func addValuePairToFrame(frame *data.Frame, timeMap map[int64]int, rowIdx int, iter *jsoniter.Iterator) (map[int64]int, int) { + timeField := frame.Fields[0] + valueField := frame.Fields[len(frame.Fields)-1] + + t, v, err := readTimeValuePair(iter) + if err != nil { + return timeMap, rowIdx + } + + ns := t.UnixNano() + i, ok := timeMap[ns] + if !ok { + timeMap[ns] = rowIdx + i = rowIdx + expandFrame(frame, i) + rowIdx++ + } + + timeField.Set(i, t) + valueField.Set(i, &v) + + return timeMap, rowIdx +} + +func readMatrixOrVectorMulti(iter *jsoniter.Iterator, resultType string) *backend.DataResponse { rsp := &backend.DataResponse{} for iter.ReadArray() { @@ -443,6 +562,14 @@ func readTimeValuePair(iter *jsoniter.Iterator) (time.Time, float64, error) { return tt, fv, err } +func expandFrame(frame *data.Frame, idx int) { + for _, f := range frame.Fields { + if idx+1 > f.Len() { + f.Extend(idx + 1 - f.Len()) + } + } +} + type histogramInfo struct { //XMax (time) YMin Ymax Count YLayout time *data.Field diff --git a/pkg/util/converter/prom_test.go b/pkg/util/converter/prom_test.go index fb71d21f19c..627005a90c9 100644 --- a/pkg/util/converter/prom_test.go +++ b/pkg/util/converter/prom_test.go @@ -4,6 +4,7 @@ import ( "io/ioutil" "os" "path" + "strings" "testing" "time" @@ -33,48 +34,57 @@ func TestReadPromFrames(t *testing.T) { } for _, name := range files { - t.Run(name, func(t *testing.T) { - // nolint:gosec - // We can ignore the gosec G304 because this is a test with static defined paths - f, err := os.Open(path.Join("testdata", name+".json")) - require.NoError(t, err) + t.Run(name, runScenario(name, Options{})) + t.Run(name, runScenario(name, Options{MatrixWideSeries: true, VectorWideSeries: true})) + } +} - iter := jsoniter.Parse(jsoniter.ConfigDefault, f, 1024) - rsp := ReadPrometheusStyleResult(iter) +func runScenario(name string, opts Options) func(t *testing.T) { + return func(t *testing.T) { + // nolint:gosec + // We can ignore the gosec G304 because this is a test with static defined paths + f, err := os.Open(path.Join("testdata", name+".json")) + require.NoError(t, err) - out, err := jsoniter.MarshalIndent(rsp, "", " ") - require.NoError(t, err) + if opts.MatrixWideSeries || opts.VectorWideSeries { + name = name + "-wide" + } - save := false - fpath := path.Join("testdata", name+"-frame.json") + iter := jsoniter.Parse(jsoniter.ConfigDefault, f, 1024) + rsp := ReadPrometheusStyleResult(iter, opts) - // nolint:gosec - // We can ignore the gosec G304 because this is a test with static defined paths - current, err := ioutil.ReadFile(fpath) - if err == nil { - same := assert.JSONEq(t, string(out), string(current)) - if !same { - save = true - } - } else { - assert.Fail(t, "missing file: "+fpath) + out, err := jsoniter.MarshalIndent(rsp, "", " ") + require.NoError(t, err) + + save := true + fpath := path.Join("testdata", name+"-frame.json") + + // nolint:gosec + // We can ignore the gosec G304 because this is a test with static defined paths + current, err := ioutil.ReadFile(fpath) + if err == nil { + same := assert.JSONEq(t, string(out), string(current)) + if !same { save = true } + } else { + assert.Fail(t, "missing file: "+fpath) + save = true + } - if save { - err = os.WriteFile(fpath, out, 0600) - require.NoError(t, err) - } + if save { + err = os.WriteFile(fpath, out, 0600) + require.NoError(t, err) + } - // skip checking golden file for error response. it's not currently supported - if name == "prom-error" { - return - } + // skip checking golden file for error response. it's not currently supported + if strings.Contains(name, "prom-error") { + return + } - fpath = path.Join("testdata", name+"-golden.txt") - err = experimental.CheckGoldenDataResponse(fpath, rsp, true) - assert.NoError(t, err) - }) + fpath = path.Join("testdata", name+"-golden.txt") + err = experimental.CheckGoldenDataResponse(fpath, rsp, true) + assert.NoError(t, err) } } diff --git a/pkg/util/converter/testdata/loki-streams-a-frame.json b/pkg/util/converter/testdata/loki-streams-a-frame.json index 622d46826a1..06eb3fe7c06 100644 --- a/pkg/util/converter/testdata/loki-streams-a-frame.json +++ b/pkg/util/converter/testdata/loki-streams-a-frame.json @@ -5,35 +5,35 @@ "meta": { "custom": { "stats": { - "store": { - "headChunkBytes": 0, - "headChunkLines": 0, - "compressedBytes": 31432, - "decompressedBytes": 7772, - "decompressedLines": 55, - "totalDuplicates": 0, - "totalChunksRef": 2, - "totalChunksDownloaded": 2, - "chunksDownloadTime": 0.000390958 - }, - "ingester": { - "totalReached": 0, - "headChunkBytes": 0, - "totalDuplicates": 0, - "headChunkLines": 0, - "decompressedBytes": 0, - "decompressedLines": 0, - "compressedBytes": 0, - "totalChunksMatched": 0, - "totalBatches": 0, - "totalLinesSent": 0 - }, "summary": { + "totalLinesProcessed": 55, + "execTime": 0.002216125, "bytesProcessedPerSecond": 3507022, "linesProcessedPerSecond": 24818, - "totalBytesProcessed": 7772, - "totalLinesProcessed": 55, - "execTime": 0.002216125 + "totalBytesProcessed": 7772 + }, + "store": { + "decompressedLines": 55, + "totalChunksRef": 2, + "totalChunksDownloaded": 2, + "chunksDownloadTime": 0.000390958, + "headChunkBytes": 0, + "headChunkLines": 0, + "decompressedBytes": 7772, + "compressedBytes": 31432, + "totalDuplicates": 0 + }, + "ingester": { + "totalBatches": 0, + "headChunkLines": 0, + "decompressedBytes": 0, + "totalDuplicates": 0, + "totalReached": 0, + "totalChunksMatched": 0, + "decompressedLines": 0, + "compressedBytes": 0, + "totalLinesSent": 0, + "headChunkBytes": 0 } } } diff --git a/pkg/util/converter/testdata/loki-streams-a-wide-frame.json b/pkg/util/converter/testdata/loki-streams-a-wide-frame.json new file mode 100644 index 00000000000..18812654643 --- /dev/null +++ b/pkg/util/converter/testdata/loki-streams-a-wide-frame.json @@ -0,0 +1,90 @@ +{ + "frames": [ + { + "schema": { + "meta": { + "custom": { + "stats": { + "ingester": { + "compressedBytes": 0, + "totalDuplicates": 0, + "totalReached": 0, + "totalChunksMatched": 0, + "totalBatches": 0, + "totalLinesSent": 0, + "decompressedBytes": 0, + "decompressedLines": 0, + "headChunkBytes": 0, + "headChunkLines": 0 + }, + "summary": { + "bytesProcessedPerSecond": 3507022, + "linesProcessedPerSecond": 24818, + "totalBytesProcessed": 7772, + "totalLinesProcessed": 55, + "execTime": 0.002216125 + }, + "store": { + "totalChunksRef": 2, + "totalChunksDownloaded": 2, + "headChunkBytes": 0, + "decompressedBytes": 7772, + "chunksDownloadTime": 0.000390958, + "headChunkLines": 0, + "decompressedLines": 55, + "compressedBytes": 31432, + "totalDuplicates": 0 + } + } + } + }, + "fields": [ + { + "name": "__labels", + "type": "other", + "typeInfo": { + "frame": "json.RawMessage" + } + }, + { + "name": "Time", + "type": "time", + "typeInfo": { + "frame": "time.Time" + } + }, + { + "name": "Line", + "type": "string", + "typeInfo": { + "frame": "string" + } + }, + { + "name": "TS", + "type": "string", + "typeInfo": { + "frame": "string" + } + } + ] + }, + "data": { + "values": [ + [ + {"level":"error","location":"moon🌙"},{"level":"info","location":"moon🌙"},{"level":"info","location":"moon🌙"},{"level":"info","location":"moon🌙"},{"level":"info","location":"moon🌙"},{"level":"info","location":"moon🌙"} + ], + [ + 1645030244810,1645030247027,1645030246277,1645030246277,1645030245539,1645030244091 + ], + [ + "log line error 1","log line info 1","log line info 2","log line info 2","log line info 3","log line info 4" + ], + [ + "1645030244810757120","1645030247027735040","1645030246277587968","1645030246277587968","1645030245539423744","1645030244091700992" + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/pkg/util/converter/testdata/loki-streams-a-wide-golden.txt b/pkg/util/converter/testdata/loki-streams-a-wide-golden.txt new file mode 100644 index 00000000000..9d1fdaa4caf --- /dev/null +++ b/pkg/util/converter/testdata/loki-streams-a-wide-golden.txt @@ -0,0 +1,56 @@ +🌟 This was machine generated. Do not edit. 🌟 + +Frame[0] { + "custom": { + "stats": { + "ingester": { + "compressedBytes": 0, + "decompressedBytes": 0, + "decompressedLines": 0, + "headChunkBytes": 0, + "headChunkLines": 0, + "totalBatches": 0, + "totalChunksMatched": 0, + "totalDuplicates": 0, + "totalLinesSent": 0, + "totalReached": 0 + }, + "store": { + "chunksDownloadTime": 0.000390958, + "compressedBytes": 31432, + "decompressedBytes": 7772, + "decompressedLines": 55, + "headChunkBytes": 0, + "headChunkLines": 0, + "totalChunksDownloaded": 2, + "totalChunksRef": 2, + "totalDuplicates": 0 + }, + "summary": { + "bytesProcessedPerSecond": 3507022, + "execTime": 0.002216125, + "linesProcessedPerSecond": 24818, + "totalBytesProcessed": 7772, + "totalLinesProcessed": 55 + } + } + } +} +Name: +Dimensions: 4 Fields by 6 Rows ++---------------------------------------+-----------------------------------------+------------------+---------------------+ +| Name: __labels | Name: Time | Name: Line | Name: TS | +| Labels: | Labels: | Labels: | Labels: | +| Type: []json.RawMessage | Type: []time.Time | Type: []string | Type: []string | ++---------------------------------------+-----------------------------------------+------------------+---------------------+ +| {"level":"error","location":"moon🌙"} | 2022-02-16 16:50:44.81075712 +0000 UTC | log line error 1 | 1645030244810757120 | +| {"level":"info","location":"moon🌙"} | 2022-02-16 16:50:47.02773504 +0000 UTC | log line info 1 | 1645030247027735040 | +| {"level":"info","location":"moon🌙"} | 2022-02-16 16:50:46.277587968 +0000 UTC | log line info 2 | 1645030246277587968 | +| {"level":"info","location":"moon🌙"} | 2022-02-16 16:50:46.277587968 +0000 UTC | log line info 2 | 1645030246277587968 | +| {"level":"info","location":"moon🌙"} | 2022-02-16 16:50:45.539423744 +0000 UTC | log line info 3 | 1645030245539423744 | +| {"level":"info","location":"moon🌙"} | 2022-02-16 16:50:44.091700992 +0000 UTC | log line info 4 | 1645030244091700992 | ++---------------------------------------+-----------------------------------------+------------------+---------------------+ + + +====== TEST DATA RESPONSE (arrow base64) ====== +FRAME=QVJST1cxAAD/////oAQAABAAAAAAAAoADgAMAAsABAAKAAAAFAAAAAAAAAEEAAoADAAAAAgABAAKAAAACAAAANACAAADAAAATAAAACgAAAAEAAAA9Pv//wgAAAAMAAAAAAAAAAAAAAAFAAAAcmVmSWQAAAAU/P//CAAAAAwAAAAAAAAAAAAAAAQAAABuYW1lAAAAADT8//8IAAAAaAIAAFwCAAB7ImN1c3RvbSI6eyJzdGF0cyI6eyJpbmdlc3RlciI6eyJjb21wcmVzc2VkQnl0ZXMiOjAsImRlY29tcHJlc3NlZEJ5dGVzIjowLCJkZWNvbXByZXNzZWRMaW5lcyI6MCwiaGVhZENodW5rQnl0ZXMiOjAsImhlYWRDaHVua0xpbmVzIjowLCJ0b3RhbEJhdGNoZXMiOjAsInRvdGFsQ2h1bmtzTWF0Y2hlZCI6MCwidG90YWxEdXBsaWNhdGVzIjowLCJ0b3RhbExpbmVzU2VudCI6MCwidG90YWxSZWFjaGVkIjowfSwic3RvcmUiOnsiY2h1bmtzRG93bmxvYWRUaW1lIjowLjAwMDM5MDk1OCwiY29tcHJlc3NlZEJ5dGVzIjozMTQzMiwiZGVjb21wcmVzc2VkQnl0ZXMiOjc3NzIsImRlY29tcHJlc3NlZExpbmVzIjo1NSwiaGVhZENodW5rQnl0ZXMiOjAsImhlYWRDaHVua0xpbmVzIjowLCJ0b3RhbENodW5rc0Rvd25sb2FkZWQiOjIsInRvdGFsQ2h1bmtzUmVmIjoyLCJ0b3RhbER1cGxpY2F0ZXMiOjB9LCJzdW1tYXJ5Ijp7ImJ5dGVzUHJvY2Vzc2VkUGVyU2Vjb25kIjozNTA3MDIyLCJleGVjVGltZSI6MC4wMDIyMTYxMjUsImxpbmVzUHJvY2Vzc2VkUGVyU2Vjb25kIjoyNDgxOCwidG90YWxCeXRlc1Byb2Nlc3NlZCI6Nzc3MiwidG90YWxMaW5lc1Byb2Nlc3NlZCI6NTV9fX19AAAAAAQAAABtZXRhAAAAAAQAAAAsAQAAtAAAAFgAAAAEAAAA9v7//xQAAAA4AAAAOAAAAAAAAAU0AAAAAQAAAAQAAADk/v//CAAAAAwAAAACAAAAVFMAAAQAAABuYW1lAAAAAAAAAADU/v//AgAAAFRTAABG////FAAAADwAAAA8AAAAAAAABTgAAAABAAAABAAAADT///8IAAAAEAAAAAQAAABMaW5lAAAAAAQAAABuYW1lAAAAAAAAAAAo////BAAAAExpbmUAAAAAnv///xQAAAA8AAAARAAAAAAAAApEAAAAAQAAAAQAAACM////CAAAABAAAAAEAAAAVGltZQAAAAAEAAAAbmFtZQAAAAAAAAAAAAAGAAgABgAGAAAAAAADAAQAAABUaW1lAAASABgAFAAAABMADAAAAAgABAASAAAAFAAAAEgAAABMAAAAAAAABEgAAAABAAAADAAAAAgADAAIAAQACAAAAAgAAAAUAAAACAAAAF9fbGFiZWxzAAAAAAQAAABuYW1lAAAAAAAAAAAEAAQABAAAAAgAAABfX2xhYmVscwAAAAAAAAAA/////0gBAAAUAAAAAAAAAAwAFgAUABMADAAEAAwAAABQAgAAAAAAABQAAAAAAAADBAAKABgADAAIAAQACgAAABQAAADIAAAABgAAAAAAAAAAAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAAAAAAIAAAAAAAAADlAAAAAAAAAAgBAAAAAAAAAAAAAAAAAAAIAQAAAAAAADAAAAAAAAAAOAEAAAAAAAAAAAAAAAAAADgBAAAAAAAAHAAAAAAAAABYAQAAAAAAAFsAAAAAAAAAuAEAAAAAAAAAAAAAAAAAALgBAAAAAAAAHAAAAAAAAADYAQAAAAAAAHIAAAAAAAAAAAAAAAQAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAACcAAABNAAAAcwAAAJkAAAC/AAAA5QAAAAAAAAB7ImxldmVsIjoiZXJyb3IiLCJsb2NhdGlvbiI6Im1vb27wn4yZIn17ImxldmVsIjoiaW5mbyIsImxvY2F0aW9uIjoibW9vbvCfjJkifXsibGV2ZWwiOiJpbmZvIiwibG9jYXRpb24iOiJtb29u8J+MmSJ9eyJsZXZlbCI6ImluZm8iLCJsb2NhdGlvbiI6Im1vb27wn4yZIn17ImxldmVsIjoiaW5mbyIsImxvY2F0aW9uIjoibW9vbvCfjJkifXsibGV2ZWwiOiJpbmZvIiwibG9jYXRpb24iOiJtb29u8J+MmSJ9AAAAABS4ukpS1BYAetw+S1LUFgAkJhJLUtQWACQmEktS1BYApibmSlLUFgAn3I9KUtQWAAAAABAAAAAfAAAALgAAAD0AAABMAAAAWwAAAAAAAABsb2cgbGluZSBlcnJvciAxbG9nIGxpbmUgaW5mbyAxbG9nIGxpbmUgaW5mbyAybG9nIGxpbmUgaW5mbyAybG9nIGxpbmUgaW5mbyAzbG9nIGxpbmUgaW5mbyA0AAAAAAAAAAAAEwAAACYAAAA5AAAATAAAAF8AAAByAAAAAAAAADE2NDUwMzAyNDQ4MTA3NTcxMjAxNjQ1MDMwMjQ3MDI3NzM1MDQwMTY0NTAzMDI0NjI3NzU4Nzk2ODE2NDUwMzAyNDYyNzc1ODc5NjgxNjQ1MDMwMjQ1NTM5NDIzNzQ0MTY0NTAzMDI0NDA5MTcwMDk5MgAAAAAAABAAAAAMABQAEgAMAAgABAAMAAAAEAAAACwAAAA4AAAAAAAEAAEAAACwBAAAAAAAAFABAAAAAAAAUAIAAAAAAAAAAAAAAAAAAAAACgAMAAAACAAEAAoAAAAIAAAA0AIAAAMAAABMAAAAKAAAAAQAAAD0+///CAAAAAwAAAAAAAAAAAAAAAUAAAByZWZJZAAAABT8//8IAAAADAAAAAAAAAAAAAAABAAAAG5hbWUAAAAANPz//wgAAABoAgAAXAIAAHsiY3VzdG9tIjp7InN0YXRzIjp7ImluZ2VzdGVyIjp7ImNvbXByZXNzZWRCeXRlcyI6MCwiZGVjb21wcmVzc2VkQnl0ZXMiOjAsImRlY29tcHJlc3NlZExpbmVzIjowLCJoZWFkQ2h1bmtCeXRlcyI6MCwiaGVhZENodW5rTGluZXMiOjAsInRvdGFsQmF0Y2hlcyI6MCwidG90YWxDaHVua3NNYXRjaGVkIjowLCJ0b3RhbER1cGxpY2F0ZXMiOjAsInRvdGFsTGluZXNTZW50IjowLCJ0b3RhbFJlYWNoZWQiOjB9LCJzdG9yZSI6eyJjaHVua3NEb3dubG9hZFRpbWUiOjAuMDAwMzkwOTU4LCJjb21wcmVzc2VkQnl0ZXMiOjMxNDMyLCJkZWNvbXByZXNzZWRCeXRlcyI6Nzc3MiwiZGVjb21wcmVzc2VkTGluZXMiOjU1LCJoZWFkQ2h1bmtCeXRlcyI6MCwiaGVhZENodW5rTGluZXMiOjAsInRvdGFsQ2h1bmtzRG93bmxvYWRlZCI6MiwidG90YWxDaHVua3NSZWYiOjIsInRvdGFsRHVwbGljYXRlcyI6MH0sInN1bW1hcnkiOnsiYnl0ZXNQcm9jZXNzZWRQZXJTZWNvbmQiOjM1MDcwMjIsImV4ZWNUaW1lIjowLjAwMjIxNjEyNSwibGluZXNQcm9jZXNzZWRQZXJTZWNvbmQiOjI0ODE4LCJ0b3RhbEJ5dGVzUHJvY2Vzc2VkIjo3NzcyLCJ0b3RhbExpbmVzUHJvY2Vzc2VkIjo1NX19fX0AAAAABAAAAG1ldGEAAAAABAAAACwBAAC0AAAAWAAAAAQAAAD2/v//FAAAADgAAAA4AAAAAAAABTQAAAABAAAABAAAAOT+//8IAAAADAAAAAIAAABUUwAABAAAAG5hbWUAAAAAAAAAANT+//8CAAAAVFMAAEb///8UAAAAPAAAADwAAAAAAAAFOAAAAAEAAAAEAAAANP///wgAAAAQAAAABAAAAExpbmUAAAAABAAAAG5hbWUAAAAAAAAAACj///8EAAAATGluZQAAAACe////FAAAADwAAABEAAAAAAAACkQAAAABAAAABAAAAIz///8IAAAAEAAAAAQAAABUaW1lAAAAAAQAAABuYW1lAAAAAAAAAAAAAAYACAAGAAYAAAAAAAMABAAAAFRpbWUAABIAGAAUAAAAEwAMAAAACAAEABIAAAAUAAAASAAAAEwAAAAAAAAESAAAAAEAAAAMAAAACAAMAAgABAAIAAAACAAAABQAAAAIAAAAX19sYWJlbHMAAAAABAAAAG5hbWUAAAAAAAAAAAQABAAEAAAACAAAAF9fbGFiZWxzAAAAAMgEAABBUlJPVzE= diff --git a/pkg/util/converter/testdata/loki-streams-b-frame.json b/pkg/util/converter/testdata/loki-streams-b-frame.json index 7c8c7dd3610..671a28f708f 100644 --- a/pkg/util/converter/testdata/loki-streams-b-frame.json +++ b/pkg/util/converter/testdata/loki-streams-b-frame.json @@ -16,24 +16,24 @@ "totalChunksRef": 2, "chunksDownloadTime": 0.000390958, "headChunkLines": 0, - "decompressedLines": 55, - "totalDuplicates": 0, + "decompressedBytes": 7772, + "compressedBytes": 31432, "totalChunksDownloaded": 2, "headChunkBytes": 0, - "decompressedBytes": 7772, - "compressedBytes": 31432 + "decompressedLines": 55, + "totalDuplicates": 0 }, "ingester": { + "compressedBytes": 0, + "totalDuplicates": 0, "totalReached": 0, - "totalChunksMatched": 0, "totalLinesSent": 0, "headChunkBytes": 0, - "decompressedLines": 0, - "totalBatches": 0, "headChunkLines": 0, + "totalChunksMatched": 0, + "totalBatches": 0, "decompressedBytes": 0, - "compressedBytes": 0, - "totalDuplicates": 0 + "decompressedLines": 0 } } } diff --git a/pkg/util/converter/testdata/loki-streams-b-wide-frame.json b/pkg/util/converter/testdata/loki-streams-b-wide-frame.json new file mode 100644 index 00000000000..160b2e3e68b --- /dev/null +++ b/pkg/util/converter/testdata/loki-streams-b-wide-frame.json @@ -0,0 +1,90 @@ +{ + "frames": [ + { + "schema": { + "meta": { + "custom": { + "stats": { + "summary": { + "bytesProcessedPerSecond": 3507022, + "linesProcessedPerSecond": 24818, + "totalBytesProcessed": 7772, + "totalLinesProcessed": 55, + "execTime": 0.002216125 + }, + "store": { + "headChunkLines": 0, + "decompressedBytes": 7772, + "totalChunksRef": 2, + "chunksDownloadTime": 0.000390958, + "decompressedLines": 55, + "compressedBytes": 31432, + "totalDuplicates": 0, + "totalChunksDownloaded": 2, + "headChunkBytes": 0 + }, + "ingester": { + "compressedBytes": 0, + "totalDuplicates": 0, + "totalReached": 0, + "totalBatches": 0, + "totalLinesSent": 0, + "headChunkBytes": 0, + "decompressedLines": 0, + "totalChunksMatched": 0, + "headChunkLines": 0, + "decompressedBytes": 0 + } + } + } + }, + "fields": [ + { + "name": "__labels", + "type": "other", + "typeInfo": { + "frame": "json.RawMessage" + } + }, + { + "name": "Time", + "type": "time", + "typeInfo": { + "frame": "time.Time" + } + }, + { + "name": "Line", + "type": "string", + "typeInfo": { + "frame": "string" + } + }, + { + "name": "TS", + "type": "string", + "typeInfo": { + "frame": "string" + } + } + ] + }, + "data": { + "values": [ + [ + {"level":"error","location":"moon"},{"level":"info","location":"moon"},{"level":"info","location":"moon"},{"level":"info","location":"moon"},{"level":"info","location":"moon"} + ], + [ + 1645030244810,1645030247027,1645030246277,1645030245539,1645030244091 + ], + [ + "log line error 1","log line info 1","log line info 2","log line info 3","log line info 4" + ], + [ + "1645030244810757120","1645030247027735040","1645030246277587968","1645030245539423744","1645030244091700992" + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/pkg/util/converter/testdata/loki-streams-b-wide-golden.txt b/pkg/util/converter/testdata/loki-streams-b-wide-golden.txt new file mode 100644 index 00000000000..d8b09e5d00a --- /dev/null +++ b/pkg/util/converter/testdata/loki-streams-b-wide-golden.txt @@ -0,0 +1,55 @@ +🌟 This was machine generated. Do not edit. 🌟 + +Frame[0] { + "custom": { + "stats": { + "ingester": { + "compressedBytes": 0, + "decompressedBytes": 0, + "decompressedLines": 0, + "headChunkBytes": 0, + "headChunkLines": 0, + "totalBatches": 0, + "totalChunksMatched": 0, + "totalDuplicates": 0, + "totalLinesSent": 0, + "totalReached": 0 + }, + "store": { + "chunksDownloadTime": 0.000390958, + "compressedBytes": 31432, + "decompressedBytes": 7772, + "decompressedLines": 55, + "headChunkBytes": 0, + "headChunkLines": 0, + "totalChunksDownloaded": 2, + "totalChunksRef": 2, + "totalDuplicates": 0 + }, + "summary": { + "bytesProcessedPerSecond": 3507022, + "execTime": 0.002216125, + "linesProcessedPerSecond": 24818, + "totalBytesProcessed": 7772, + "totalLinesProcessed": 55 + } + } + } +} +Name: +Dimensions: 4 Fields by 5 Rows ++-------------------------------------+-----------------------------------------+------------------+---------------------+ +| Name: __labels | Name: Time | Name: Line | Name: TS | +| Labels: | Labels: | Labels: | Labels: | +| Type: []json.RawMessage | Type: []time.Time | Type: []string | Type: []string | ++-------------------------------------+-----------------------------------------+------------------+---------------------+ +| {"level":"error","location":"moon"} | 2022-02-16 16:50:44.81075712 +0000 UTC | log line error 1 | 1645030244810757120 | +| {"level":"info","location":"moon"} | 2022-02-16 16:50:47.02773504 +0000 UTC | log line info 1 | 1645030247027735040 | +| {"level":"info","location":"moon"} | 2022-02-16 16:50:46.277587968 +0000 UTC | log line info 2 | 1645030246277587968 | +| {"level":"info","location":"moon"} | 2022-02-16 16:50:45.539423744 +0000 UTC | log line info 3 | 1645030245539423744 | +| {"level":"info","location":"moon"} | 2022-02-16 16:50:44.091700992 +0000 UTC | log line info 4 | 1645030244091700992 | ++-------------------------------------+-----------------------------------------+------------------+---------------------+ + + +====== TEST DATA RESPONSE (arrow base64) ====== +FRAME=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 diff --git a/pkg/util/converter/testdata/prom-error-wide-frame.json b/pkg/util/converter/testdata/prom-error-wide-frame.json new file mode 100644 index 00000000000..9fa71e9db64 --- /dev/null +++ b/pkg/util/converter/testdata/prom-error-wide-frame.json @@ -0,0 +1,3 @@ +{ + "error": "bad_data: invalid parameter \"start\": cannot parse \"\" to a valid timestamp" +} \ No newline at end of file diff --git a/pkg/util/converter/testdata/prom-error-wide-golden.txt b/pkg/util/converter/testdata/prom-error-wide-golden.txt new file mode 100644 index 00000000000..c078e905cdf --- /dev/null +++ b/pkg/util/converter/testdata/prom-error-wide-golden.txt @@ -0,0 +1,3 @@ + +ERROR: bad_data: invalid parameter "start": cannot parse "" to a valid timestamp====== TEST DATA RESPONSE (arrow base64) ====== +ERROR=bad_data: invalid parameter "start": cannot parse "" to a valid timestamp diff --git a/pkg/util/converter/testdata/prom-exemplars-wide-frame.json b/pkg/util/converter/testdata/prom-exemplars-wide-frame.json new file mode 100644 index 00000000000..63a0384071f --- /dev/null +++ b/pkg/util/converter/testdata/prom-exemplars-wide-frame.json @@ -0,0 +1,116 @@ +{ + "frames": [ + { + "schema": { + "meta": { + "custom": { + "resultType": "exemplar" + } + }, + "fields": [ + { + "name": "Time", + "type": "time", + "typeInfo": { + "frame": "time.Time" + } + }, + { + "name": "Value", + "type": "number", + "typeInfo": { + "frame": "float64" + }, + "labels": { + "__name__": "test_exemplar_metric_total", + "instance": "localhost:8090", + "job": "prometheus", + "service": "bar" + } + }, + { + "name": "traceID", + "type": "string", + "typeInfo": { + "frame": "string" + } + }, + { + "name": "a", + "type": "string", + "typeInfo": { + "frame": "string" + } + } + ] + }, + "data": { + "values": [ + [ + 1600096945479 + ], + [ + 6 + ], + [ + "EpTxMJ40fUus7aGY" + ], + [ + "not in next" + ] + ] + } + }, + { + "schema": { + "meta": { + "custom": { + "resultType": "exemplar" + } + }, + "fields": [ + { + "name": "Time", + "type": "time", + "typeInfo": { + "frame": "time.Time" + } + }, + { + "name": "Value", + "type": "number", + "typeInfo": { + "frame": "float64" + }, + "labels": { + "__name__": "test_exemplar_metric_total", + "instance": "localhost:8090", + "job": "prometheus", + "service": "foo" + } + }, + { + "name": "traceID", + "type": "string", + "typeInfo": { + "frame": "string" + } + } + ] + }, + "data": { + "values": [ + [ + 1600096955479,1600096965489 + ], + [ + 19,20 + ], + [ + "Olp9XHlq763ccsfa","hCtjygkIHwAN9vs4" + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/pkg/util/converter/testdata/prom-exemplars-wide-golden.txt b/pkg/util/converter/testdata/prom-exemplars-wide-golden.txt new file mode 100644 index 00000000000..f3c8d29d514 --- /dev/null +++ b/pkg/util/converter/testdata/prom-exemplars-wide-golden.txt @@ -0,0 +1,39 @@ +🌟 This was machine generated. Do not edit. 🌟 + +Frame[0] { + "custom": { + "resultType": "exemplar" + } +} +Name: +Dimensions: 4 Fields by 1 Rows ++-----------------------------------+---------------------------------------------------------------------------------------------------+------------------+----------------+ +| Name: Time | Name: Value | Name: traceID | Name: a | +| Labels: | Labels: __name__=test_exemplar_metric_total, instance=localhost:8090, job=prometheus, service=bar | Labels: | Labels: | +| Type: []time.Time | Type: []float64 | Type: []string | Type: []string | ++-----------------------------------+---------------------------------------------------------------------------------------------------+------------------+----------------+ +| 2020-09-14 15:22:25.479 +0000 UTC | 6 | EpTxMJ40fUus7aGY | not in next | ++-----------------------------------+---------------------------------------------------------------------------------------------------+------------------+----------------+ + + + +Frame[1] { + "custom": { + "resultType": "exemplar" + } +} +Name: +Dimensions: 3 Fields by 2 Rows ++-----------------------------------+---------------------------------------------------------------------------------------------------+------------------+ +| Name: Time | Name: Value | Name: traceID | +| Labels: | Labels: __name__=test_exemplar_metric_total, instance=localhost:8090, job=prometheus, service=foo | Labels: | +| Type: []time.Time | Type: []float64 | Type: []string | ++-----------------------------------+---------------------------------------------------------------------------------------------------+------------------+ +| 2020-09-14 15:22:35.479 +0000 UTC | 19 | Olp9XHlq763ccsfa | +| 2020-09-14 15:22:45.489 +0000 UTC | 20 | hCtjygkIHwAN9vs4 | ++-----------------------------------+---------------------------------------------------------------------------------------------------+------------------+ + + +====== TEST DATA RESPONSE (arrow base64) ====== +FRAME=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 +FRAME=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 diff --git a/pkg/util/converter/testdata/prom-labels-wide-frame.json b/pkg/util/converter/testdata/prom-labels-wide-frame.json new file mode 100644 index 00000000000..ce2ea92da99 --- /dev/null +++ b/pkg/util/converter/testdata/prom-labels-wide-frame.json @@ -0,0 +1,24 @@ +{ + "frames": [ + { + "schema": { + "fields": [ + { + "name": "Value", + "type": "string", + "typeInfo": { + "frame": "string" + } + } + ] + }, + "data": { + "values": [ + [ + "__name__","call","code","config","dialer_name","endpoint","event","goversion","handler","instance","interval","job","le","listener_name","name","quantile","reason","role","scrape_job","slice","version" + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/pkg/util/converter/testdata/prom-labels-wide-golden.txt b/pkg/util/converter/testdata/prom-labels-wide-golden.txt new file mode 100644 index 00000000000..bcff6d3e963 --- /dev/null +++ b/pkg/util/converter/testdata/prom-labels-wide-golden.txt @@ -0,0 +1,25 @@ +🌟 This was machine generated. Do not edit. 🌟 + +Frame[0] +Name: +Dimensions: 1 Fields by 21 Rows ++----------------+ +| Name: Value | +| Labels: | +| Type: []string | ++----------------+ +| __name__ | +| call | +| code | +| config | +| dialer_name | +| endpoint | +| event | +| goversion | +| handler | +| ... | ++----------------+ + + +====== TEST DATA RESPONSE (arrow base64) ====== +FRAME=QVJST1cxAAD/////AAEAABAAAAAAAAoADgAMAAsABAAKAAAAFAAAAAAAAAEEAAoADAAAAAgABAAKAAAACAAAAFAAAAACAAAAKAAAAAQAAACE////CAAAAAwAAAAAAAAAAAAAAAUAAAByZWZJZAAAAKT///8IAAAADAAAAAAAAAAAAAAABAAAAG5hbWUAAAAAAQAAABgAAAAAABIAGAAUAAAAEwAMAAAACAAEABIAAAAUAAAARAAAAEgAAAAAAAAFRAAAAAEAAAAMAAAACAAMAAgABAAIAAAACAAAABAAAAAFAAAAVmFsdWUAAAAEAAAAbmFtZQAAAAAAAAAABAAEAAQAAAAFAAAAVmFsdWUAAAD/////mAAAABQAAAAAAAAADAAWABQAEwAMAAQADAAAAOgAAAAAAAAAFAAAAAAAAAMEAAoAGAAMAAgABAAKAAAAFAAAAEgAAAAVAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAAAAAAAABYAAAAAAAAAIwAAAAAAAAAAAAAAAEAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAMAAAAEAAAABYAAAAhAAAAKQAAAC4AAAA3AAAAPgAAAEYAAABOAAAAUQAAAFMAAABgAAAAZAAAAGwAAAByAAAAdgAAAIAAAACFAAAAjAAAAF9fbmFtZV9fY2FsbGNvZGVjb25maWdkaWFsZXJfbmFtZWVuZHBvaW50ZXZlbnRnb3ZlcnNpb25oYW5kbGVyaW5zdGFuY2VpbnRlcnZhbGpvYmxlbGlzdGVuZXJfbmFtZW5hbWVxdWFudGlsZXJlYXNvbnJvbGVzY3JhcGVfam9ic2xpY2V2ZXJzaW9uAAAAABAAAAAMABQAEgAMAAgABAAMAAAAEAAAACwAAAA8AAAAAAAEAAEAAAAQAQAAAAAAAKAAAAAAAAAA6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAoADAAAAAgABAAKAAAACAAAAFAAAAACAAAAKAAAAAQAAACE////CAAAAAwAAAAAAAAAAAAAAAUAAAByZWZJZAAAAKT///8IAAAADAAAAAAAAAAAAAAABAAAAG5hbWUAAAAAAQAAABgAAAAAABIAGAAUAAAAEwAMAAAACAAEABIAAAAUAAAARAAAAEgAAAAAAAAFRAAAAAEAAAAMAAAACAAMAAgABAAIAAAACAAAABAAAAAFAAAAVmFsdWUAAAAEAAAAbmFtZQAAAAAAAAAABAAEAAQAAAAFAAAAVmFsdWUAAAAwAQAAQVJST1cx diff --git a/pkg/util/converter/testdata/prom-matrix-histogram-no-labels-wide-frame.json b/pkg/util/converter/testdata/prom-matrix-histogram-no-labels-wide-frame.json new file mode 100644 index 00000000000..5b53a2ecc16 --- /dev/null +++ b/pkg/util/converter/testdata/prom-matrix-histogram-no-labels-wide-frame.json @@ -0,0 +1,70 @@ +{ + "frames": [ + { + "schema": { + "meta": { + "type": "heatmap-cells-sparse" + }, + "fields": [ + { + "name": "xMax", + "type": "time", + "typeInfo": { + "frame": "time.Time" + } + }, + { + "name": "yMin", + "type": "number", + "typeInfo": { + "frame": "float64" + }, + "labels": { + + } + }, + { + "name": "yMax", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "count", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "yLayout", + "type": "number", + "typeInfo": { + "frame": "int8" + } + } + ] + }, + "data": { + "values": [ + [ + 1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000 + ], + [ + 0.000004536465129862675,0.000004947050303081549,0.000005394796609394436,0.000005883067418700946,0.000006415530511884418,0.0000069961856323598564,0.00000762939453125,0.000008319913731882154,0.00000907293025972535,0.000009894100606163098,0.000010789593218788871,0.000011766134837401892,0.000012831061023768835,0.000013992371264719713,0.0000152587890625,0.000016639827463764308,0.0000181458605194507,0.000019788201212326197,0.000021579186437577742,0.000023532269674803783,0.00002566212204753767,0.000027984742529439426,0.000030517578125,0.000033279654927528616,0.0000362917210389014,0.000039576402424652394,0.000043158372875155485,0.00004706453934960757,0.00005132424409507534,0.00005596948505887885,0.00006103515625,0.00006655930985505723,0.0000725834420778028,0.00007915280484930479,0.00008631674575031097,0.00048828125,0.0005324744788404579,0.0005806675366224224,0.0006332224387944383,0.0006905339660024878,0.0007530326295937211,0.0008211879055212055,0.0008955117609420616,0.0009765625,0.0010649489576809157,0.0011613350732448448,0.0012664448775888766,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.020263118041422026,0.022097086912079608,0.024097044146999074,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.1051120519067143,0.11462550540058389,0.125,0.1363134665831572,0.14865088937534013,0.1621049443313762,0.17677669529663687,0.1927763531759926,0.2102241038134286,0.22925101080116778,0.25,0.2726269331663144,0.29730177875068026,0.3242098886627524,0.35355339059327373,0.3855527063519852,0.4204482076268572,0.45850202160233555,0.5,0.5452538663326288,0.5946035575013605,0.6484197773255048,0.7071067811865475,0.7711054127039704,0.8408964152537144,0.9170040432046711,1,1.0905077326652577,1.189207115002721,1.2968395546510096,1.414213562373095,1.5422108254079407,1.6817928305074288,1.8340080864093422,2,0.0000034980928161799282,0.000003814697265625,0.000004159956865941077,0.000004536465129862675,0.000004947050303081549,0.000005394796609394436,0.000005883067418700946,0.000006415530511884418,0.0000069961856323598564,0.00000762939453125,0.000008319913731882154,0.00000907293025972535,0.000009894100606163098,0.000010789593218788871,0.000011766134837401892,0.000012831061023768835,0.000013992371264719713,0.0000152587890625,0.000016639827463764308,0.0000181458605194507,0.000019788201212326197,0.000021579186437577742,0.000023532269674803783,0.00002566212204753767,0.000027984742529439426,0.000030517578125,0.000033279654927528616,0.0000362917210389014,0.000039576402424652394,0.000043158372875155485,0.00004706453934960757,0.00005132424409507534,0.00005596948505887885,0.00006103515625,0.00006655930985505723,0.0000725834420778028,0.00007915280484930479,0.00008631674575031097,0.00017263349150062194,0.00048828125,0.0005324744788404579,0.0005806675366224224,0.0006332224387944383,0.0006905339660024878,0.0007530326295937211,0.0008211879055212055,0.0008955117609420616,0.0009765625,0.0010649489576809157,0.0011613350732448448,0.0012664448775888766,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.020263118041422026,0.022097086912079608,0.024097044146999074,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.1051120519067143,0.11462550540058389,0.125,0.1363134665831572,0.14865088937534013,0.1621049443313762,0.17677669529663687,0.1927763531759926,0.2102241038134286,0.22925101080116778,0.25,0.2726269331663144,0.29730177875068026,0.3242098886627524,0.35355339059327373,0.3855527063519852,0.4204482076268572,0.45850202160233555,0.5,0.5452538663326288,0.5946035575013605,0.6484197773255048,0.7071067811865475,0.7711054127039704,0.8408964152537144,0.9170040432046711,1,1.0905077326652577,1.189207115002721,1.2968395546510096,1.414213562373095,1.5422108254079407,1.6817928305074288,1.8340080864093422,2,2.1810154653305154,2.378414230005442,2.5936791093020193,0.0000034980928161799282,0.000003814697265625,0.000004159956865941077,0.000004536465129862675,0.000004947050303081549,0.000005394796609394436,0.000005883067418700946,0.000006415530511884418,0.0000069961856323598564,0.00000762939453125,0.000008319913731882154,0.00000907293025972535,0.000009894100606163098,0.000010789593218788871,0.000011766134837401892,0.000012831061023768835,0.000013992371264719713,0.0000152587890625,0.000016639827463764308,0.0000181458605194507,0.000019788201212326197,0.000021579186437577742,0.000023532269674803783,0.00002566212204753767,0.000027984742529439426,0.000030517578125,0.000033279654927528616,0.0000362917210389014,0.000039576402424652394,0.000043158372875155485,0.00004706453934960757,0.00005132424409507534,0.00005596948505887885,0.00006103515625,0.00006655930985505723,0.0000725834420778028,0.00007915280484930479,0.00008631674575031097,0.00017263349150062194,0.0005324744788404579,0.0005806675366224224,0.0006332224387944383,0.0006905339660024878,0.0007530326295937211,0.0008211879055212055,0.0008955117609420616,0.0009765625,0.0010649489576809157,0.0011613350732448448,0.0012664448775888766,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.020263118041422026,0.022097086912079608,0.024097044146999074,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.1051120519067143,0.11462550540058389,0.125,0.1363134665831572,0.14865088937534013,0.1621049443313762,0.17677669529663687,0.1927763531759926,0.2102241038134286,0.22925101080116778,0.25,0.2726269331663144,0.29730177875068026,0.3242098886627524,0.35355339059327373,0.3855527063519852,0.4204482076268572,0.45850202160233555,0.5,0.5452538663326288,0.5946035575013605,0.6484197773255048,0.7071067811865475,0.7711054127039704,0.8408964152537144,0.9170040432046711,1,1.0905077326652577,1.189207115002721,1.2968395546510096,1.414213562373095,1.5422108254079407,1.6817928305074288,1.8340080864093422,2,2.1810154653305154,2.378414230005442,2.5936791093020193,0.0000034980928161799282,0.000003814697265625,0.000004159956865941077,0.000004536465129862675,0.000004947050303081549,0.000005394796609394436,0.000005883067418700946,0.000006415530511884418,0.0000069961856323598564,0.00000762939453125,0.000008319913731882154,0.00000907293025972535,0.000009894100606163098,0.000010789593218788871,0.000011766134837401892,0.000012831061023768835,0.000013992371264719713,0.0000152587890625,0.000016639827463764308,0.0000181458605194507,0.000019788201212326197,0.000021579186437577742,0.000023532269674803783,0.00002566212204753767,0.000027984742529439426,0.000030517578125,0.000033279654927528616,0.0000362917210389014,0.000039576402424652394,0.000043158372875155485,0.00004706453934960757,0.00005132424409507534,0.00005596948505887885,0.00006103515625,0.00006655930985505723,0.0000725834420778028,0.00007915280484930479,0.00017263349150062194,0.0005324744788404579,0.0005806675366224224,0.0006332224387944383,0.0006905339660024878,0.0007530326295937211,0.0008211879055212055,0.0008955117609420616,0.0009765625,0.0010649489576809157,0.0011613350732448448,0.0012664448775888766,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.020263118041422026,0.022097086912079608,0.024097044146999074,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.1051120519067143,0.11462550540058389,0.125,0.1363134665831572,0.14865088937534013,0.1621049443313762,0.17677669529663687,0.1927763531759926,0.2102241038134286,0.22925101080116778,0.25,0.2726269331663144,0.29730177875068026,0.3242098886627524,0.35355339059327373,0.3855527063519852,0.4204482076268572,0.45850202160233555,0.5,0.5452538663326288,0.5946035575013605,0.6484197773255048,0.7071067811865475,0.7711054127039704,0.8408964152537144,0.9170040432046711,1,1.0905077326652577,1.189207115002721,1.2968395546510096,1.414213562373095,1.5422108254079407,1.6817928305074288,2.5936791093020193,0.000004536465129862675,0.000004947050303081549,0.000005394796609394436,0.000005883067418700946,0.000006415530511884418,0.0000069961856323598564,0.00000762939453125,0.000008319913731882154,0.00000907293025972535,0.000009894100606163098,0.000010789593218788871,0.000011766134837401892,0.000012831061023768835,0.000013992371264719713,0.0000152587890625,0.000016639827463764308,0.0000181458605194507,0.000019788201212326197,0.000021579186437577742,0.000023532269674803783,0.00002566212204753767,0.000027984742529439426,0.000030517578125,0.000033279654927528616,0.0000362917210389014,0.000039576402424652394,0.000043158372875155485,0.00004706453934960757,0.00005132424409507534,0.00005596948505887885,0.00006103515625,0.00006655930985505723,0.0000725834420778028,0.00007915280484930479,0.00008631674575031097,0.00009412907869921513,0.00010264848819015068,0.0001119389701177577,0.0001220703125,0.0005324744788404579,0.0005806675366224224,0.0006332224387944383,0.0006905339660024878,0.0007530326295937211,0.0008211879055212055,0.0008955117609420616,0.0009765625,0.0010649489576809157,0.0011613350732448448,0.0012664448775888766,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.020263118041422026,0.022097086912079608,0.024097044146999074,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.1051120519067143,0.11462550540058389,0.125,0.1363134665831572,0.14865088937534013,0.1621049443313762,0.17677669529663687,0.1927763531759926,0.2102241038134286,0.22925101080116778,0.25,0.3855527063519852,0.4204482076268572,0.45850202160233555,0.5,0.5452538663326288,0.5946035575013605,0.6484197773255048,0.7071067811865475,0.7711054127039704,0.8408964152537144,0.9170040432046711,1,1.0905077326652577,1.189207115002721,1.2968395546510096,1.414213562373095,1.5422108254079407,1.6817928305074288,0.000004536465129862675,0.000004947050303081549,0.000005394796609394436,0.000005883067418700946,0.000006415530511884418,0.0000069961856323598564,0.00000762939453125,0.000008319913731882154,0.00000907293025972535,0.000009894100606163098,0.000010789593218788871,0.000011766134837401892,0.000012831061023768835,0.000013992371264719713,0.0000152587890625,0.000016639827463764308,0.0000181458605194507,0.000019788201212326197,0.000021579186437577742,0.000023532269674803783,0.00002566212204753767,0.000027984742529439426,0.000030517578125,0.000033279654927528616,0.0000362917210389014,0.000039576402424652394,0.000043158372875155485,0.00004706453934960757,0.00005132424409507534,0.00005596948505887885,0.00006103515625,0.00006655930985505723,0.0000725834420778028,0.00007915280484930479,0.00008631674575031097,0.00009412907869921513,0.00010264848819015068,0.0001119389701177577,0.0001220703125,0.0005324744788404579,0.0005806675366224224,0.0006332224387944383,0.0006905339660024878,0.0007530326295937211,0.0008211879055212055,0.0008955117609420616,0.0009765625,0.0010649489576809157,0.0011613350732448448,0.0012664448775888766,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.020263118041422026,0.022097086912079608,0.024097044146999074,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.1051120519067143,0.11462550540058389,0.125,0.1363134665831572,0.14865088937534013,0.1621049443313762,0.17677669529663687,0.1927763531759926,0.2102241038134286,0.22925101080116778,0.3855527063519852,0.4204482076268572,0.45850202160233555,0.5,0.5452538663326288,0.5946035575013605,0.6484197773255048,0.7071067811865475,0.7711054127039704,0.8408964152537144,0.9170040432046711,1,1.0905077326652577,1.189207115002721,1.2968395546510096,1.414213562373095,1.5422108254079407,1.6817928305074288,0.000004159956865941077,0.000004536465129862675,0.000004947050303081549,0.000005394796609394436,0.000005883067418700946,0.000006415530511884418,0.0000069961856323598564,0.00000762939453125,0.000008319913731882154,0.00000907293025972535,0.000009894100606163098,0.000010789593218788871,0.000011766134837401892,0.000012831061023768835,0.000013992371264719713,0.0000152587890625,0.000016639827463764308,0.0000181458605194507,0.000019788201212326197,0.000021579186437577742,0.000023532269674803783,0.00002566212204753767,0.000027984742529439426,0.000030517578125,0.000033279654927528616,0.0000362917210389014,0.000039576402424652394,0.000043158372875155485,0.00004706453934960757,0.00005132424409507534,0.00005596948505887885,0.00006103515625,0.00006655930985505723,0.0000725834420778028,0.00007915280484930479,0.00008631674575031097,0.00009412907869921513,0.00010264848819015068,0.0001119389701177577,0.0001220703125,0.0005324744788404579,0.0005806675366224224,0.0006332224387944383,0.0006905339660024878,0.0007530326295937211,0.0008211879055212055,0.0008955117609420616,0.0009765625,0.0010649489576809157,0.0011613350732448448,0.0012664448775888766,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.020263118041422026,0.022097086912079608,0.024097044146999074,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.1051120519067143,0.11462550540058389,0.125,0.1363134665831572,0.14865088937534013,0.1621049443313762,0.17677669529663687,0.1927763531759926,0.2102241038134286,0.22925101080116778,0.25,0.35355339059327373,0.3855527063519852,0.4204482076268572,0.45850202160233555,0.5,0.5452538663326288,0.5946035575013605,0.6484197773255048,0.7071067811865475,0.7711054127039704,0.8408964152537144,0.9170040432046711,1,1.0905077326652577,1.189207115002721,1.2968395546510096,1.414213562373095,1.5422108254079407,1.6817928305074288,1.8340080864093422,2 + ], + [ + 0.000004947050303081549,0.000005394796609394436,0.000005883067418700946,0.000006415530511884418,0.0000069961856323598564,0.00000762939453125,0.000008319913731882154,0.00000907293025972535,0.000009894100606163098,0.000010789593218788871,0.000011766134837401892,0.000012831061023768835,0.000013992371264719713,0.0000152587890625,0.000016639827463764308,0.0000181458605194507,0.000019788201212326197,0.000021579186437577742,0.000023532269674803783,0.00002566212204753767,0.000027984742529439426,0.000030517578125,0.000033279654927528616,0.0000362917210389014,0.000039576402424652394,0.000043158372875155485,0.00004706453934960757,0.00005132424409507534,0.00005596948505887885,0.00006103515625,0.00006655930985505723,0.0000725834420778028,0.00007915280484930479,0.00008631674575031097,0.00009412907869921513,0.0005324744788404579,0.0005806675366224224,0.0006332224387944383,0.0006905339660024878,0.0007530326295937211,0.0008211879055212055,0.0008955117609420616,0.0009765625,0.0010649489576809157,0.0011613350732448448,0.0012664448775888766,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.020263118041422026,0.022097086912079608,0.024097044146999074,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.1051120519067143,0.11462550540058389,0.125,0.1363134665831572,0.14865088937534013,0.1621049443313762,0.17677669529663687,0.1927763531759926,0.2102241038134286,0.22925101080116778,0.25,0.2726269331663144,0.29730177875068026,0.3242098886627524,0.35355339059327373,0.3855527063519852,0.4204482076268572,0.45850202160233555,0.5,0.5452538663326288,0.5946035575013605,0.6484197773255048,0.7071067811865475,0.7711054127039704,0.8408964152537144,0.9170040432046711,1,1.0905077326652577,1.189207115002721,1.2968395546510096,1.414213562373095,1.5422108254079407,1.6817928305074288,1.8340080864093422,2,2.1810154653305154,0.000003814697265625,0.000004159956865941077,0.000004536465129862675,0.000004947050303081549,0.000005394796609394436,0.000005883067418700946,0.000006415530511884418,0.0000069961856323598564,0.00000762939453125,0.000008319913731882154,0.00000907293025972535,0.000009894100606163098,0.000010789593218788871,0.000011766134837401892,0.000012831061023768835,0.000013992371264719713,0.0000152587890625,0.000016639827463764308,0.0000181458605194507,0.000019788201212326197,0.000021579186437577742,0.000023532269674803783,0.00002566212204753767,0.000027984742529439426,0.000030517578125,0.000033279654927528616,0.0000362917210389014,0.000039576402424652394,0.000043158372875155485,0.00004706453934960757,0.00005132424409507534,0.00005596948505887885,0.00006103515625,0.00006655930985505723,0.0000725834420778028,0.00007915280484930479,0.00008631674575031097,0.00009412907869921513,0.00018825815739843027,0.0005324744788404579,0.0005806675366224224,0.0006332224387944383,0.0006905339660024878,0.0007530326295937211,0.0008211879055212055,0.0008955117609420616,0.0009765625,0.0010649489576809157,0.0011613350732448448,0.0012664448775888766,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.020263118041422026,0.022097086912079608,0.024097044146999074,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.1051120519067143,0.11462550540058389,0.125,0.1363134665831572,0.14865088937534013,0.1621049443313762,0.17677669529663687,0.1927763531759926,0.2102241038134286,0.22925101080116778,0.25,0.2726269331663144,0.29730177875068026,0.3242098886627524,0.35355339059327373,0.3855527063519852,0.4204482076268572,0.45850202160233555,0.5,0.5452538663326288,0.5946035575013605,0.6484197773255048,0.7071067811865475,0.7711054127039704,0.8408964152537144,0.9170040432046711,1,1.0905077326652577,1.189207115002721,1.2968395546510096,1.414213562373095,1.5422108254079407,1.6817928305074288,1.8340080864093422,2,2.1810154653305154,2.378414230005442,2.5936791093020193,2.82842712474619,0.000003814697265625,0.000004159956865941077,0.000004536465129862675,0.000004947050303081549,0.000005394796609394436,0.000005883067418700946,0.000006415530511884418,0.0000069961856323598564,0.00000762939453125,0.000008319913731882154,0.00000907293025972535,0.000009894100606163098,0.000010789593218788871,0.000011766134837401892,0.000012831061023768835,0.000013992371264719713,0.0000152587890625,0.000016639827463764308,0.0000181458605194507,0.000019788201212326197,0.000021579186437577742,0.000023532269674803783,0.00002566212204753767,0.000027984742529439426,0.000030517578125,0.000033279654927528616,0.0000362917210389014,0.000039576402424652394,0.000043158372875155485,0.00004706453934960757,0.00005132424409507534,0.00005596948505887885,0.00006103515625,0.00006655930985505723,0.0000725834420778028,0.00007915280484930479,0.00008631674575031097,0.00009412907869921513,0.00018825815739843027,0.0005806675366224224,0.0006332224387944383,0.0006905339660024878,0.0007530326295937211,0.0008211879055212055,0.0008955117609420616,0.0009765625,0.0010649489576809157,0.0011613350732448448,0.0012664448775888766,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.020263118041422026,0.022097086912079608,0.024097044146999074,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.1051120519067143,0.11462550540058389,0.125,0.1363134665831572,0.14865088937534013,0.1621049443313762,0.17677669529663687,0.1927763531759926,0.2102241038134286,0.22925101080116778,0.25,0.2726269331663144,0.29730177875068026,0.3242098886627524,0.35355339059327373,0.3855527063519852,0.4204482076268572,0.45850202160233555,0.5,0.5452538663326288,0.5946035575013605,0.6484197773255048,0.7071067811865475,0.7711054127039704,0.8408964152537144,0.9170040432046711,1,1.0905077326652577,1.189207115002721,1.2968395546510096,1.414213562373095,1.5422108254079407,1.6817928305074288,1.8340080864093422,2,2.1810154653305154,2.378414230005442,2.5936791093020193,2.82842712474619,0.000003814697265625,0.000004159956865941077,0.000004536465129862675,0.000004947050303081549,0.000005394796609394436,0.000005883067418700946,0.000006415530511884418,0.0000069961856323598564,0.00000762939453125,0.000008319913731882154,0.00000907293025972535,0.000009894100606163098,0.000010789593218788871,0.000011766134837401892,0.000012831061023768835,0.000013992371264719713,0.0000152587890625,0.000016639827463764308,0.0000181458605194507,0.000019788201212326197,0.000021579186437577742,0.000023532269674803783,0.00002566212204753767,0.000027984742529439426,0.000030517578125,0.000033279654927528616,0.0000362917210389014,0.000039576402424652394,0.000043158372875155485,0.00004706453934960757,0.00005132424409507534,0.00005596948505887885,0.00006103515625,0.00006655930985505723,0.0000725834420778028,0.00007915280484930479,0.00008631674575031097,0.00018825815739843027,0.0005806675366224224,0.0006332224387944383,0.0006905339660024878,0.0007530326295937211,0.0008211879055212055,0.0008955117609420616,0.0009765625,0.0010649489576809157,0.0011613350732448448,0.0012664448775888766,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.020263118041422026,0.022097086912079608,0.024097044146999074,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.1051120519067143,0.11462550540058389,0.125,0.1363134665831572,0.14865088937534013,0.1621049443313762,0.17677669529663687,0.1927763531759926,0.2102241038134286,0.22925101080116778,0.25,0.2726269331663144,0.29730177875068026,0.3242098886627524,0.35355339059327373,0.3855527063519852,0.4204482076268572,0.45850202160233555,0.5,0.5452538663326288,0.5946035575013605,0.6484197773255048,0.7071067811865475,0.7711054127039704,0.8408964152537144,0.9170040432046711,1,1.0905077326652577,1.189207115002721,1.2968395546510096,1.414213562373095,1.5422108254079407,1.6817928305074288,1.8340080864093422,2.82842712474619,0.000004947050303081549,0.000005394796609394436,0.000005883067418700946,0.000006415530511884418,0.0000069961856323598564,0.00000762939453125,0.000008319913731882154,0.00000907293025972535,0.000009894100606163098,0.000010789593218788871,0.000011766134837401892,0.000012831061023768835,0.000013992371264719713,0.0000152587890625,0.000016639827463764308,0.0000181458605194507,0.000019788201212326197,0.000021579186437577742,0.000023532269674803783,0.00002566212204753767,0.000027984742529439426,0.000030517578125,0.000033279654927528616,0.0000362917210389014,0.000039576402424652394,0.000043158372875155485,0.00004706453934960757,0.00005132424409507534,0.00005596948505887885,0.00006103515625,0.00006655930985505723,0.0000725834420778028,0.00007915280484930479,0.00008631674575031097,0.00009412907869921513,0.00010264848819015068,0.0001119389701177577,0.0001220703125,0.00013311861971011446,0.0005806675366224224,0.0006332224387944383,0.0006905339660024878,0.0007530326295937211,0.0008211879055212055,0.0008955117609420616,0.0009765625,0.0010649489576809157,0.0011613350732448448,0.0012664448775888766,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.020263118041422026,0.022097086912079608,0.024097044146999074,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.1051120519067143,0.11462550540058389,0.125,0.1363134665831572,0.14865088937534013,0.1621049443313762,0.17677669529663687,0.1927763531759926,0.2102241038134286,0.22925101080116778,0.25,0.2726269331663144,0.4204482076268572,0.45850202160233555,0.5,0.5452538663326288,0.5946035575013605,0.6484197773255048,0.7071067811865475,0.7711054127039704,0.8408964152537144,0.9170040432046711,1,1.0905077326652577,1.189207115002721,1.2968395546510096,1.414213562373095,1.5422108254079407,1.6817928305074288,1.8340080864093422,0.000004947050303081549,0.000005394796609394436,0.000005883067418700946,0.000006415530511884418,0.0000069961856323598564,0.00000762939453125,0.000008319913731882154,0.00000907293025972535,0.000009894100606163098,0.000010789593218788871,0.000011766134837401892,0.000012831061023768835,0.000013992371264719713,0.0000152587890625,0.000016639827463764308,0.0000181458605194507,0.000019788201212326197,0.000021579186437577742,0.000023532269674803783,0.00002566212204753767,0.000027984742529439426,0.000030517578125,0.000033279654927528616,0.0000362917210389014,0.000039576402424652394,0.000043158372875155485,0.00004706453934960757,0.00005132424409507534,0.00005596948505887885,0.00006103515625,0.00006655930985505723,0.0000725834420778028,0.00007915280484930479,0.00008631674575031097,0.00009412907869921513,0.00010264848819015068,0.0001119389701177577,0.0001220703125,0.00013311861971011446,0.0005806675366224224,0.0006332224387944383,0.0006905339660024878,0.0007530326295937211,0.0008211879055212055,0.0008955117609420616,0.0009765625,0.0010649489576809157,0.0011613350732448448,0.0012664448775888766,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.020263118041422026,0.022097086912079608,0.024097044146999074,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.1051120519067143,0.11462550540058389,0.125,0.1363134665831572,0.14865088937534013,0.1621049443313762,0.17677669529663687,0.1927763531759926,0.2102241038134286,0.22925101080116778,0.25,0.4204482076268572,0.45850202160233555,0.5,0.5452538663326288,0.5946035575013605,0.6484197773255048,0.7071067811865475,0.7711054127039704,0.8408964152537144,0.9170040432046711,1,1.0905077326652577,1.189207115002721,1.2968395546510096,1.414213562373095,1.5422108254079407,1.6817928305074288,1.8340080864093422,0.000004536465129862675,0.000004947050303081549,0.000005394796609394436,0.000005883067418700946,0.000006415530511884418,0.0000069961856323598564,0.00000762939453125,0.000008319913731882154,0.00000907293025972535,0.000009894100606163098,0.000010789593218788871,0.000011766134837401892,0.000012831061023768835,0.000013992371264719713,0.0000152587890625,0.000016639827463764308,0.0000181458605194507,0.000019788201212326197,0.000021579186437577742,0.000023532269674803783,0.00002566212204753767,0.000027984742529439426,0.000030517578125,0.000033279654927528616,0.0000362917210389014,0.000039576402424652394,0.000043158372875155485,0.00004706453934960757,0.00005132424409507534,0.00005596948505887885,0.00006103515625,0.00006655930985505723,0.0000725834420778028,0.00007915280484930479,0.00008631674575031097,0.00009412907869921513,0.00010264848819015068,0.0001119389701177577,0.0001220703125,0.00013311861971011446,0.0005806675366224224,0.0006332224387944383,0.0006905339660024878,0.0007530326295937211,0.0008211879055212055,0.0008955117609420616,0.0009765625,0.0010649489576809157,0.0011613350732448448,0.0012664448775888766,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.020263118041422026,0.022097086912079608,0.024097044146999074,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.1051120519067143,0.11462550540058389,0.125,0.1363134665831572,0.14865088937534013,0.1621049443313762,0.17677669529663687,0.1927763531759926,0.2102241038134286,0.22925101080116778,0.25,0.2726269331663144,0.3855527063519852,0.4204482076268572,0.45850202160233555,0.5,0.5452538663326288,0.5946035575013605,0.6484197773255048,0.7071067811865475,0.7711054127039704,0.8408964152537144,0.9170040432046711,1,1.0905077326652577,1.189207115002721,1.2968395546510096,1.414213562373095,1.5422108254079407,1.6817928305074288,1.8340080864093422,2,2.1810154653305154 + ], + [ + 0.0912281686682326,1.5052655709601983,3.687721957559951,3.940352908621686,3.140353893534075,3.4491272391832517,3.536846537427657,3.5473736411518795,3.712286008031362,3.0280735611164142,2.417546839045018,2.0491250846541718,1.7964930748014019,1.035088421057081,0.5649130070825141,0.32982501693048877,0.26315816559062166,0.21052636503677785,0.12982472145340268,0.10175454601489256,0.08070187750154703,0.07719294552226055,0.0807019144357724,0.059649184364635795,0.03157903354908663,0.03508775623281657,0.010526340412520992,0.024561452754866545,0.017543884272170115,0.017543896583693767,0,0.010526328101083735,0,0,0.0035087842413482158,0.0035087596183873034,0.0035087596183873034,0.024561354263022896,0.056140252385694915,0.056140252385694915,0.0666665681751686,0.07368408741194321,0.04912274546035757,0.03508765774105932,0.024561354263022896,0.014035038473549213,0.0771927608502697,0.08421030470991883,0.13684184672323466,0.10877181902214444,0.18947364727751048,0.20350879655434057,0.2701754139752582,0.18596506001967675,0.2210527670070035,0.3368424007411079,0.6982461188105812,0.5929829362924517,0.36491257617961814,0.6175444382938449,1.2666677500866232,1.515790926450568,1.2526324530705588,0.8561410649489343,3.157897827051131,18.354407793322594,51.15093795056361,62.0141089078649,47.72637148699598,27.554419107639355,13.143875038581198,6.003515900325691,3.726320049275038,2.70877510620855,2.361406365054835,2.252634410606189,2.2912312219328377,2.7473713388970427,2.7649151862330865,2.1122827331663294,2.0350900461849424,1.4210542320831565,1.7473706740684587,4.484215155469158,2.2280723792116985,0.6631587319229559,0.3508774884609246,0.30175463219685406,0.20701774084489158,0.1087720036943081,0.07719306863715152,0.08070174207487321,0.12280711603656726,0.08771937211501513,0.0842105878739261,0.07017548784310423,0.035087743921465714,0.3614038288738775,2.0175463342735847,1.2421067405461763,0.3438600800273444,0.10877206525175358,0.028070236996214765,0.02456148968943751,0.010526291166599169,0.014035112342345554,0.014035063096510127,0.010526315789473682,0.017543847337685547,0.010526315789473682,0,0.003508771929824561,0,0.014035087719298244,0.02105261926751011,0.04561398584197026,0.03859646660519565,0.010526315789473682,0.003508771929824561,0.003508771929824561,0.007017543859649122,0.003508771929824561,0,0.007017531548211865,0.007017543859649122,0.010526315789473682,0.007017543859649122,0.007017543859649122,0.007017543859649122,0,0.003508771929824561,0.003508771929824561,0.0036261111111111108,0,0,0.0637938660130719,1.4215152026143791,3.5536896887254907,3.402109665849673,2.6349410326797384,2.9075339305555556,2.850494328431372,3.0024724289215685,3.1463935825163407,2.7158130138888894,2.1348795988562093,1.8191187965686275,1.7353841503267975,0.8447863357843137,0.5242529272875818,0.31308197058823534,0.2561575269607843,0.1841881045751634,0.11364103349673205,0.08887290849673203,0.09506850163398693,0.06324278349673204,0.06401875245098039,0.04972979901960784,0.042588529411764706,0.04629039705882353,0.013992486928104576,0.021237459150326803,0.010544208333333334,0.010659312908496733,0.007020604575163399,0.014121029411764706,0,0,0.003466771241830066,0.003466771241830066,0.0035300277777777778,0.0070600555555555555,0.02826001388888889,0.03885405555555556,0.04944413888888889,0.05652002777777778,0.04944413888888889,0.049459972222222225,0.021192041666666668,0.017658055555555555,0.024722069444444446,0.07061638888888888,0.07415406372549019,0.10248221078431373,0.10254042565359478,0.14122193137254901,0.20878059885620914,0.19209755718954247,0.15227395588235293,0.1911960996732026,0.2767643611111111,0.560012633986928,0.5068101511437909,0.3230447116013072,0.47721713807189536,1.034568390522876,1.4658972540849673,1.0146639910130721,0.7116645857843139,2.743197340686275,15.773624514705887,43.52358742156862,54.76741900735295,42.30484877777778,24.266136450163398,12.094812607026146,5.3917965555555565,3.2884932638888893,2.3943452066993465,1.9715330065359475,1.8288977050653594,1.9447070588235293,2.3304484836601307,2.5128566307189537,2.0683444281045755,1.8907336797385623,1.4306746200980394,1.504499804738562,3.71943691503268,1.9213663088235293,0.5214704272875816,0.2727602459150327,0.21250111274509806,0.17663313725490196,0.11299878758169936,0.06362774346405228,0.07109260539215687,0.08474004901960785,0.0642784068627451,0.042364099673202614,0.035102852124183,0.0353818227124183,0.37523963725490195,1.8780912982026141,0.9314658897058823,0.28726889460784316,0.07414933251633987,0.024544237745098042,0.01751213235294118,0.042606702614379086,0.017747972222222224,0.03177798774509804,0.010637597222222222,0.017806333333333334,0.014238902777777777,0.003569625,0.017658055555555555,0.0035300277777777778,0.0142785,0.007099652777777778,0.04978072222222222,0.028406527777777777,0.00713925,0.003569625,0,0.00713925,0.007036396241830066,0,0.003474313725490196,0.00713925,0.00713925,0.010708875,0.003569625,0.003569625,0.003569625,0.003569625,0.003569625,0,0,0.003569625,0.003508771929824561,0,0,0.05614035087719298,1.4982456140350877,3.9122807017543857,3.9964912280701754,2.978947368421052,3.1368421052631574,3.305263157894736,3.2947368421052627,3.4526315789473685,3.2842105263157895,2.543859649122807,2.0771929824561406,2.052631578947368,1.1473684210526318,0.5789473684210527,0.4070175438596491,0.3157894736842105,0.19999999999999996,0.13333333333333333,0.0807017543859649,0.11929824561403506,0.08421052631578947,0.08771929824561403,0.05614035087719297,0.05614035087719298,0.052631578947368404,0.017543859649122806,0.017543859649122806,0.010526315789473682,0.007017543859649122,0.007017543859649122,0.014035087719298244,0,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.007017543859649122,0.03859649122807017,0.04210526315789473,0.04561403508771929,0.05614035087719298,0.07368421052631577,0.04912280701754385,0.021052631578947364,0.017543859649122806,0.031578947368421054,0.059649122807017535,0.07017543859649122,0.10526315789473684,0.1087719298245614,0.17192982456140352,0.19298245614035087,0.22105263157894733,0.2070175438596491,0.23157894736842105,0.3298245614035088,0.5929824561403508,0.5578947368421053,0.3543859649122807,0.575438596491228,1.1649122807017547,1.7192982456140349,1.1859649122807019,0.7929824561403509,3.066666666666666,17.385964912280688,48.192982456140335,62.66315789473683,48.45263157894737,28.396491228070172,14.066666666666666,6.533333333333332,4.03157894736842,2.9368421052631577,2.371929824561403,2.1087719298245613,2.1859649122807014,2.7684210526315787,2.8771929824561395,2.308771929824561,2.0315789473684207,1.4631578947368422,1.5333333333333332,4.087719298245613,2.1859649122807014,0.6421052631578946,0.34736842105263155,0.24210526315789474,0.20350877192982456,0.15087719298245614,0.11228070175438594,0.10175438596491225,0.09473684210526313,0.07719298245614033,0.03157894736842105,0.03157894736842105,0.035087719298245605,0.45964912280701753,2.1929824561403506,1.0140350877192983,0.28771929824561404,0.06666666666666667,0.03508771929824561,0.017543859649122806,0.04210526315789473,0.021052631578947368,0.031578947368421054,0.014035087719298244,0.017543859649122806,0.014035087719298244,0.003508771929824561,0.017543859649122806,0.003508771929824561,0.014035087719298244,0.010526315789473682,0.02456140350877193,0.003508771929824561,0.007017543859649122,0.003508771929824561,0,0.010526315789473682,0.007017543859649122,0,0.003508771929824561,0.010526315789473682,0.003508771929824561,0.014035087719298244,0,0.003508771929824561,0.003508771929824561,0,0.003508771929824561,0,0,0.003508771929824561,0.003508771929824561,0,0,0.02807017543859649,1.2035087719298243,3.547368421052631,4.042105263157894,3.0491228070175436,3.2596491228070175,3.4561403508771926,3.396491228070175,3.557894736842105,3.487719298245614,2.585964912280702,2.03859649122807,2.042105263157895,1.2280701754385965,0.5438596491228069,0.4035087719298246,0.27017543859649124,0.17894736842105263,0.14736842105263157,0.059649122807017535,0.11228070175438594,0.07017543859649122,0.0807017543859649,0.04912280701754385,0.059649122807017535,0.03859649122807017,0.014035087719298244,0.014035087719298244,0.003508771929824561,0.003508771929824561,0.007017543859649122,0.014035087719298244,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.010526315789473682,0.04210526315789473,0.059649122807017535,0.07368421052631578,0.06666666666666665,0.07368421052631578,0.04210526315789473,0.010526315789473682,0.021052631578947364,0.04210526315789473,0.07719298245614034,0.07719298245614034,0.11228070175438597,0.17543859649122806,0.15438596491228065,0.19298245614035084,0.22807017543859648,0.19649122807017544,0.27017543859649124,0.38596491228070173,0.5964912280701753,0.5473684210526315,0.35789473684210515,0.6280701754385966,1.2,1.7719298245614032,1.1859649122807017,0.7719298245614036,3.231578947368421,18.22456140350877,49.45614035087718,63.24912280701754,47.582456140350864,27.810526315789467,13.543859649122806,6.736842105263155,3.968421052631578,3.028070175438596,2.452631578947368,2.189473684210526,2.1543859649122803,2.5824561403508772,2.7473684210526317,2.1789473684210527,1.870175438596491,1.2736842105263158,1.4596491228070174,4.038596491228069,2.063157894736842,0.6947368421052632,0.34035087719298246,0.23508771929824562,0.16842105263157894,0.11228070175438595,0.1087719298245614,0.0982456140350877,0.08771929824561402,0.05263157894736841,0.03157894736842105,0.021052631578947368,0.010526315789473682,0.6245614035087719,2.2175438596491226,0.8280701754385963,0.2526315789473684,0.06666666666666665,0.03508771929824561,0.021052631578947368,0.03508771929824561,0.017543859649122806,0.017543859649122806,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.017543859649122806,0.007017543859649122,0.021052631578947368,0.014035087719298244,0.021052631578947364,0.007017543859649122,0.007017543859649122,0.007017543859649122,0.003508771929824561,0.007017543859649122,0.010526315789473682,0,0.003508771929824561,0.010526315789473682,0.003508771929824561,0.017543859649122806,0,0,0.010526315789473682,0.003508771929824561,0.04210526315789473,1.0105263157894735,3.3438596491228063,4.063157894736841,3.1859649122807014,3.4421052631578943,3.6245614035087717,3.575438596491227,3.6421052631578945,3.5333333333333337,2.4526315789473685,2.0421052631578944,1.8982456140350874,1.1649122807017545,0.5298245614035088,0.39649122807017534,0.26315789473684204,0.1543859649122807,0.15087719298245614,0.07719298245614033,0.06666666666666665,0.06666666666666665,0.08421052631578946,0.045614035087719294,0.05614035087719297,0.031578947368421054,0.014035087719298244,0.014035087719298244,0,0.003508771929824561,0.003508771929824561,0.014035087719298244,0.003508771929824561,0.003508771929824561,0,0.003508771929824561,0,0,0.003508771929824561,0.010526315789473682,0.031578947368421054,0.04561403508771929,0.0807017543859649,0.04912280701754385,0.11929824561403507,0.04561403508771929,0.010526315789473682,0.021052631578947368,0.03157894736842105,0.0631578947368421,0.07017543859649122,0.11929824561403507,0.14035087719298245,0.16491228070175434,0.18596491228070172,0.23859649122807014,0.21403508771929824,0.22807017543859648,0.4140350877192982,0.6526315789473682,0.5263157894736842,0.33333333333333337,0.6350877192982457,1.192982456140351,1.7087719298245614,1.1719298245614036,0.8175438596491229,2.849122807017544,17.761403508771924,51.09473684210525,64.32982456140353,47.99649122807017,27.554385964912274,12.978947368421052,6.592982456140347,3.9789473684210526,2.9929824561403504,2.452631578947368,2.16140350877193,2.021052631578947,2.4491228070175435,2.663157894736842,2.070175438596491,1.7614035087719297,1.0666666666666664,1.2526315789473683,4.035087719298244,2.0175438596491224,0.7263157894736842,0.3192982456140351,0.18245614035087718,0.1263157894736842,0.09473684210526313,0.08771929824561402,0.07368421052631578,0.0807017543859649,0.06315789473684211,0.031578947368421054,0.02807017543859649,0.021052631578947368,0.687719298245614,2.27719298245614,0.775438596491228,0.22105263157894733,0.04210526315789473,0.031578947368421054,0.014035087719298244,0.003508771929824561,0.017543859649122806,0,0.003508771929824561,0.010526315789473682,0.014035087719298244,0.021052631578947364,0.014035087719298244,0.010526315789473682,0.007017543859649122,0.010526315789473682,0.007017543859649122,0.007017543859649122,0.003508771929824561,0,0,0.010526315789473682,0.003508771929824561,0.017543859649122806,0.003508771929824561,0,0.007017543859649122,0.03859649122807017,0.9543859649122806,3.2701754385964916,4.0701754385964914,3.196491228070175,3.691228070175438,3.621052631578947,3.7263157894736842,3.7999999999999994,3.3263157894736843,2.343859649122807,2.150877192982456,1.8877192982456135,1.0350877192982457,0.5017543859649122,0.3614035087719297,0.21754385964912284,0.1614035087719298,0.1333333333333333,0.07719298245614035,0.07368421052631578,0.07017543859649122,0.07719298245614033,0.049122807017543846,0.06666666666666665,0.024561403508771926,0.017543859649122806,0.014035087719298244,0.007017543859649122,0.014035087719298244,0.010526315789473682,0.007017543859649122,0.003508771929824561,0,0,0.003508771929824561,0,0,0.003508771929824561,0.010526315789473682,0.017543859649122806,0.03859649122807017,0.0807017543859649,0.03859649122807017,0.1087719298245614,0.031578947368421054,0.014035087719298244,0.017543859649122806,0.02807017543859649,0.05614035087719298,0.07017543859649122,0.11929824561403507,0.143859649122807,0.1543859649122807,0.19649122807017538,0.21052631578947364,0.20701754385964907,0.21403508771929822,0.4701754385964912,0.6912280701754386,0.4982456140350877,0.3087719298245614,0.6210526315789473,1.3473684210526315,1.670175438596491,1.1157894736842104,0.6912280701754386,3.192982456140351,20.077192982456136,54.11929824561404,64.30877192982457,46.77192982456139,25.82807017543859,12.256140350877194,6.182456140350874,3.9052631578947365,2.859649122807017,2.2912280701754386,2.0982456140350876,1.9228070175438596,2.112280701754386,2.435087719298245,1.9157894736842105,1.7543859649122808,0.9789473684210528,1.1473684210526316,4.0175438596491215,1.9684210526315788,0.7403508771929823,0.2807017543859649,0.12982456140350876,0.08421052631578946,0.0807017543859649,0.0807017543859649,0.06315789473684211,0.07719298245614035,0.06666666666666665,0.05614035087719298,0.04210526315789473,0.03157894736842105,0.7403508771929824,2.4,0.575438596491228,0.22807017543859645,0.03508771929824561,0.03508771929824561,0.017543859649122806,0.003508771929824561,0.007017543859649122,0.003508771929824561,0.014035087719298244,0.014035087719298244,0.017543859649122806,0.003508771929824561,0.010526315789473682,0.007017543859649122,0.007017543859649122,0.003508771929824561,0.007017543859649122,0.003508771929824561,0,0,0.007017543859649122,0.007017543859649122,0.014035087719298244,0.003508771929824561,0,0.007017543859649122,0.003508771929824561,0.03859649122807017,0.9122807017543859,3.245614035087719,3.9999999999999996,3.266666666666666,3.4771929824561396,3.5052631578947366,3.789473684210526,3.8912280701754387,3.2771929824561408,2.4771929824561405,2.266666666666666,1.8912280701754383,1.0105263157894737,0.49473684210526314,0.3789473684210526,0.24210526315789474,0.18245614035087718,0.13684210526315788,0.1087719298245614,0.07368421052631578,0.05964912280701753,0.0631578947368421,0.05263157894736841,0.05614035087719298,0.017543859649122806,0.03157894736842105,0.007017543859649122,0.007017543859649122,0.014035087719298244,0.007017543859649122,0.003508771929824561,0,0,0,0.003508771929824561,0.003508771929824561,0,0.003508771929824561,0.010526315789473682,0.03508771929824561,0.05263157894736842,0.07719298245614034,0.06666666666666665,0.1087719298245614,0.05263157894736842,0.02807017543859649,0.014035087719298244,0.035087719298245605,0.059649122807017535,0.09473684210526315,0.12982456140350876,0.11228070175438595,0.1754385964912281,0.2175438596491228,0.1894736842105263,0.20701754385964913,0.22456140350877188,0.5052631578947369,0.6982456140350878,0.4842105263157895,0.29824561403508776,0.6175438596491226,1.3929824561403508,1.6421052631578947,1.1543859649122807,0.7543859649122809,3.536842105263158,20.761403508771924,54.23859649122807,63.37543859649122,46.38245614035087,25.298245614035082,12.424561403508772,6.028070175438595,3.9789473684210526,2.7122807017543855,2.340350877192982,2.003508771929824,1.870175438596491,2.23859649122807,2.4315789473684206,2.087719298245614,1.859649122807017,1.0701754385964912,1.1543859649122807,3.831578947368421,2.0421052631578944,0.7543859649122806,0.3298245614035088,0.16842105263157897,0.12280701754385963,0.12280701754385963,0.08771929824561402,0.07719298245614034,0.1087719298245614,0.10526315789473681,0.08771929824561403,0.07017543859649121,0.0631578947368421,0.687719298245614,2.3543859649122805,0.6491228070175437,0.25263157894736843,0.05263157894736841,0.059649122807017535,0.031578947368421054,0.014035087719298244,0.014035087719298244,0.007017543859649122,0.003508771929824561,0.003508771929824561,0.014035087719298244,0.014035087719298244,0.024561403508771926,0.010526315789473682,0.007017543859649122,0.007017543859649122,0.014035087719298244,0.003508771929824561,0.007017543859649122,0,0,0,0.003508771929824561,0.010526315789473682,0.014035087719298244,0.010526315789473682,0.003508771929824561,0,0,0.007017543859649122 + ], + [ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/pkg/util/converter/testdata/prom-matrix-histogram-no-labels-wide-golden.txt b/pkg/util/converter/testdata/prom-matrix-histogram-no-labels-wide-golden.txt new file mode 100644 index 00000000000..22e63353e7f --- /dev/null +++ b/pkg/util/converter/testdata/prom-matrix-histogram-no-labels-wide-golden.txt @@ -0,0 +1,27 @@ +🌟 This was machine generated. Do not edit. 🌟 + +Frame[0] { + "type": "heatmap-cells-sparse" +} +Name: +Dimensions: 5 Fields by 932 Rows ++-------------------------------+------------------------+------------------------+--------------------+---------------+ +| Name: xMax | Name: yMin | Name: yMax | Name: count | Name: yLayout | +| Labels: | Labels: | Labels: | Labels: | Labels: | +| Type: []time.Time | Type: []float64 | Type: []float64 | Type: []float64 | Type: []int8 | ++-------------------------------+------------------------+------------------------+--------------------+---------------+ +| 2022-04-14 19:08:20 +0000 UTC | 4.536465129862675e-06 | 4.947050303081549e-06 | 0.0912281686682326 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 4.947050303081549e-06 | 5.394796609394436e-06 | 1.5052655709601983 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 5.394796609394436e-06 | 5.883067418700946e-06 | 3.687721957559951 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 5.883067418700946e-06 | 6.415530511884418e-06 | 3.940352908621686 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 6.415530511884418e-06 | 6.9961856323598564e-06 | 3.140353893534075 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 6.9961856323598564e-06 | 7.62939453125e-06 | 3.4491272391832517 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 7.62939453125e-06 | 8.319913731882154e-06 | 3.536846537427657 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 8.319913731882154e-06 | 9.07293025972535e-06 | 3.5473736411518795 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 9.07293025972535e-06 | 9.894100606163098e-06 | 3.712286008031362 | 0 | +| ... | ... | ... | ... | ... | ++-------------------------------+------------------------+------------------------+--------------------+---------------+ + + +====== TEST DATA RESPONSE (arrow base64) ====== +FRAME=QVJST1cxAAD/////+AIAABAAAAAAAAoADgAMAAsABAAKAAAAFAAAAAAAAAEEAAoADAAAAAgABAAKAAAACAAAAJAAAAADAAAATAAAACgAAAAEAAAAnP3//wgAAAAMAAAAAAAAAAAAAAAFAAAAcmVmSWQAAAC8/f//CAAAAAwAAAAAAAAAAAAAAAQAAABuYW1lAAAAANz9//8IAAAAKAAAAB8AAAB7InR5cGUiOiJoZWF0bWFwLWNlbGxzLXNwYXJzZSJ9AAQAAABtZXRhAAAAAAUAAADEAQAAMAEAANAAAABwAAAABAAAAGL+//8UAAAAPAAAAEQAAAAAAAACSAAAAAEAAAAEAAAAUP7//wgAAAAQAAAABwAAAHlMYXlvdXQABAAAAG5hbWUAAAAAAAAAAAgADAAIAAcACAAAAAAAAAEIAAAABwAAAHlMYXlvdXQAyv7//xQAAAA8AAAAPAAAAAAAAAM8AAAAAQAAAAQAAAC4/v//CAAAABAAAAAFAAAAY291bnQAAAAEAAAAbmFtZQAAAAAAAAAArv7//wAAAgAFAAAAY291bnQAAAAm////FAAAADwAAAA8AAAAAAAAAzwAAAABAAAABAAAABT///8IAAAAEAAAAAQAAAB5TWF4AAAAAAQAAABuYW1lAAAAAAAAAAAK////AAACAAQAAAB5TWF4AAAAAIL///8UAAAAYAAAAGAAAAAAAAADYAAAAAIAAAAsAAAABAAAAHT///8IAAAAEAAAAAQAAAB5TWluAAAAAAQAAABuYW1lAAAAAJj///8IAAAADAAAAAIAAAB7fQAABgAAAGxhYmVscwAAAAAAAIr///8AAAIABAAAAHlNaW4AABIAGAAUAAAAEwAMAAAACAAEABIAAAAUAAAARAAAAEwAAAAAAAAKTAAAAAEAAAAMAAAACAAMAAgABAAIAAAACAAAABAAAAAEAAAAeE1heAAAAAAEAAAAbmFtZQAAAAAAAAAAAAAGAAgABgAGAAAAAAADAAQAAAB4TWF4AAAAAAAAAAD/////SAEAABQAAAAAAAAADAAWABQAEwAMAAQADAAAACh4AAAAAAAAFAAAAAAAAAMEAAoAGAAMAAgABAAKAAAAFAAAALgAAACkAwAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIB0AAAAAAAAgHQAAAAAAAAAAAAAAAAAAIB0AAAAAAAAgHQAAAAAAAEA6AAAAAAAAAAAAAAAAAABAOgAAAAAAACAdAAAAAAAAYFcAAAAAAAAAAAAAAAAAAGBXAAAAAAAAIB0AAAAAAACAdAAAAAAAAAAAAAAAAAAAgHQAAAAAAACkAwAAAAAAAAAAAAAFAAAApAMAAAAAAAAAAAAAAAAAAKQDAAAAAAAAAAAAAAAAAACkAwAAAAAAAAAAAAAAAAAApAMAAAAAAAAAAAAAAAAAAKQDAAAAAAAAAAAAAAAAAAAAaO4k4djlFgBo7iTh2OUWAGjuJOHY5RYAaO4k4djlFgBo7iTh2OUWAGjuJOHY5RYAaO4k4djlFgBo7iTh2OUWAGjuJOHY5RYAaO4k4djlFgBo7iTh2OUWAGjuJOHY5RYAaO4k4djlFgBo7iTh2OUWAGjuJOHY5RYAaO4k4djlFgBo7iTh2OUWAGjuJOHY5RYAaO4k4djlFgBo7iTh2OUWAGjuJOHY5RYAaO4k4djlFgBo7iTh2OUWAGjuJOHY5RYAaO4k4djlFgBo7iTh2OUWAGjuJOHY5RYAaO4k4djlFgBo7iTh2OUWAGjuJOHY5RYAaO4k4djlFgBo7iTh2OUWAGjuJOHY5RYAaO4k4djlFgBo7iTh2OUWAGjuJOHY5RYAaO4k4djlFgBo7iTh2OUWAGjuJOHY5RYAaO4k4djlFgBo7iTh2OUWAGjuJOHY5RYAaO4k4djlFgBo7iTh2OUWAGjuJOHY5RYAaO4k4djlFgBo7iTh2OUWAGjuJOHY5RYAaO4k4djlFgBo7iTh2OUWAGjuJOHY5RYAaO4k4djlFgBo7iTh2OUWAGjuJOHY5RYAaO4k4djlFgBo7iTh2OUWAGjuJOHY5RYAaO4k4djlFgBo7iTh2OUWAGjuJOHY5RYAaO4k4djlFgBo7iTh2OUWAGjuJOHY5RYAaO4k4djlFgBo7iTh2OUWAGjuJOHY5RYAaO4k4djlFgBo7iTh2OUWAGjuJOHY5RYAaO4k4djlFgBo7iTh2OUWAGjuJOHY5RYAaO4k4djlFgBo7iTh2OUWAGjuJOHY5RYAaO4k4djlFgBo7iTh2OUWAGjuJOHY5RYAaO4k4djlFgBo7iTh2OUWAGjuJOHY5RYAaO4k4djlFgBo7iTh2OUWAGjuJOHY5RYAaO4k4djlFgBo7iTh2OUWAGjuJOHY5RYAaO4k4djlFgBo7iTh2OUWAGjuJOHY5RYAaO4k4djlFgBo7iTh2OUWAGjuJOHY5RYAaO4k4djlFgBo7iTh2OUWAGjuJOHY5RYAaO4k4djlFgBo7iTh2OUWAGjuJOHY5RYAaO4k4djlFgBo7iTh2OUWAGjuJOHY5RYAaO4k4djlFgBo7iTh2OUWAGjuJOHY5RYAaO4k4djlFgBo7iTh2OUWAGjuJOHY5RYAaO4k4djlFgBo7iTh2OUWAGjuJOHY5RYAaO4k4djlFgBo7iTh2OUWAGjuJOHY5RYAaO4k4djlFgBo7iTh2OUWAGjuJOHY5RYAaO4k4djlFgBo7iTh2OUWAGjuJOHY5RYAaO4k4djlFgBo7iTh2OUWAGjuJOHY5RYAaO4k4djlFgBo7iTh2OUWAGjuJOHY5RYAaO4k4djlFgBo7iTh2OUWAGjuJOHY5RYAaO4k4djlFgBo7iTh2OUWAGjuJOHY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWAFBlbfjY5RYAUGVt+NjlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWFbcxCv4G0z4nKjbV2r/UPsw7f2aeoNY+26AqQuWs2D6s01qZn+jaPoak+9wYWN0+AAAAAAAA4D57UX08uHLhPhW3MQr+BuM+Jyo21dq/5D7MO39mnqDmPtugKkLlrOg+rNNamZ/o6j6GpPvcGFjtPgAAAAAAAPA+e1F9PLhy8T4VtzEK/gbzPicqNtXav/Q+zDt/Zp6g9j7boCpC5az4PqzTWpmf6Po+hqT73BhY/T4AAAAAAAAAP3tRfTy4cgE/FbcxCv4GAz8nKjbV2r8EP8w7f2aeoAY/26AqQuWsCD+s01qZn+gKP4ak+9wYWA0/AAAAAAAAED97UX08uHIRPxW3MQr+BhM/Jyo21dq/FD/MO39mnqAWPwAAAAAAAEA/e1F9PLhyQT8VtzEK/gZDPycqNtXav0Q/zDt/Zp6gRj/boCpC5axIP6zTWpmf6Eo/hqT73BhYTT8AAAAAAABQP3tRfTy4clE/FbcxCv4GUz8nKjbV2r9UP8w7f2aeoFY/26AqQuWsWD+s01qZn+haP4ak+9wYWF0/AAAAAAAAYD97UX08uHJhPxW3MQr+BmM/Jyo21dq/ZD/MO39mnqBmP9ugKkLlrGg/rNNamZ/oaj+GpPvcGFhtPwAAAAAAAHA/e1F9PLhycT8VtzEK/gZzPycqNtXav3Q/zDt/Zp6gdj/boCpC5ax4P6zTWpmf6Ho/hqT73BhYfT8AAAAAAACAP3tRfTy4coE/FbcxCv4Ggz8nKjbV2r+EP8w7f2aeoIY/26AqQuWsiD+s01qZn+iKP4ak+9wYWI0/AAAAAAAAkD97UX08uHKRPxW3MQr+BpM/Jyo21dq/lD/MO39mnqCWP9ugKkLlrJg/rNNamZ/omj+GpPvcGFidPwAAAAAAAKA/e1F9PLhyoT8VtzEK/gajPycqNtXav6Q/zDt/Zp6gpj/boCpC5ayoP6zTWpmf6Ko/hqT73BhYrT8AAAAAAACwP3tRfTy4crE/FbcxCv4Gsz8nKjbV2r+0P8w7f2aeoLY/26AqQuWsuD+s01qZn+i6P4ak+9wYWL0/AAAAAAAAwD97UX08uHLBPxW3MQr+BsM/Jyo21dq/xD/MO39mnqDGP9ugKkLlrMg/rNNamZ/oyj+GpPvcGFjNPwAAAAAAANA/e1F9PLhy0T8VtzEK/gbTPycqNtXav9Q/zDt/Zp6g1j/boCpC5azYP6zTWpmf6No/hqT73BhY3T8AAAAAAADgP3tRfTy4cuE/FbcxCv4G4z8nKjbV2r/kP8w7f2aeoOY/26AqQuWs6D+s01qZn+jqP4ak+9wYWO0/AAAAAAAA8D97UX08uHLxPxW3MQr+BvM/Jyo21dq/9D/MO39mnqD2P9ugKkLlrPg/rNNamZ/o+j+GpPvcGFj9PwAAAAAAAABAhqT73BhYzT4AAAAAAADQPntRfTy4ctE+FbcxCv4G0z4nKjbV2r/UPsw7f2aeoNY+26AqQuWs2D6s01qZn+jaPoak+9wYWN0+AAAAAAAA4D57UX08uHLhPhW3MQr+BuM+Jyo21dq/5D7MO39mnqDmPtugKkLlrOg+rNNamZ/o6j6GpPvcGFjtPgAAAAAAAPA+e1F9PLhy8T4VtzEK/gbzPicqNtXav/Q+zDt/Zp6g9j7boCpC5az4PqzTWpmf6Po+hqT73BhY/T4AAAAAAAAAP3tRfTy4cgE/FbcxCv4GAz8nKjbV2r8EP8w7f2aeoAY/26AqQuWsCD+s01qZn+gKP4ak+9wYWA0/AAAAAAAAED97UX08uHIRPxW3MQr+BhM/Jyo21dq/FD/MO39mnqAWP8w7f2aeoCY/AAAAAAAAQD97UX08uHJBPxW3MQr+BkM/Jyo21dq/RD/MO39mnqBGP9ugKkLlrEg/rNNamZ/oSj+GpPvcGFhNPwAAAAAAAFA/e1F9PLhyUT8VtzEK/gZTPycqNtXav1Q/zDt/Zp6gVj/boCpC5axYP6zTWpmf6Fo/hqT73BhYXT8AAAAAAABgP3tRfTy4cmE/FbcxCv4GYz8nKjbV2r9kP8w7f2aeoGY/26AqQuWsaD+s01qZn+hqP4ak+9wYWG0/AAAAAAAAcD97UX08uHJxPxW3MQr+BnM/Jyo21dq/dD/MO39mnqB2P9ugKkLlrHg/rNNamZ/oej+GpPvcGFh9PwAAAAAAAIA/e1F9PLhygT8VtzEK/gaDPycqNtXav4Q/zDt/Zp6ghj/boCpC5ayIP6zTWpmf6Io/hqT73BhYjT8AAAAAAACQP3tRfTy4cpE/FbcxCv4Gkz8nKjbV2r+UP8w7f2aeoJY/26AqQuWsmD+s01qZn+iaP4ak+9wYWJ0/AAAAAAAAoD97UX08uHKhPxW3MQr+BqM/Jyo21dq/pD/MO39mnqCmP9ugKkLlrKg/rNNamZ/oqj+GpPvcGFitPwAAAAAAALA/e1F9PLhysT8VtzEK/gazPycqNtXav7Q/zDt/Zp6gtj/boCpC5ay4P6zTWpmf6Lo/hqT73BhYvT8AAAAAAADAP3tRfTy4csE/FbcxCv4Gwz8nKjbV2r/EP8w7f2aeoMY/26AqQuWsyD+s01qZn+jKP4ak+9wYWM0/AAAAAAAA0D97UX08uHLRPxW3MQr+BtM/Jyo21dq/1D/MO39mnqDWP9ugKkLlrNg/rNNamZ/o2j+GpPvcGFjdPwAAAAAAAOA/e1F9PLhy4T8VtzEK/gbjPycqNtXav+Q/zDt/Zp6g5j/boCpC5azoP6zTWpmf6Oo/hqT73BhY7T8AAAAAAADwP3tRfTy4cvE/FbcxCv4G8z8nKjbV2r/0P8w7f2aeoPY/26AqQuWs+D+s01qZn+j6P4ak+9wYWP0/AAAAAAAAAEB7UX08uHIBQBW3MQr+BgNAJyo21dq/BECGpPvcGFjNPgAAAAAAANA+e1F9PLhy0T4VtzEK/gbTPicqNtXav9Q+zDt/Zp6g1j7boCpC5azYPqzTWpmf6No+hqT73BhY3T4AAAAAAADgPntRfTy4cuE+FbcxCv4G4z4nKjbV2r/kPsw7f2aeoOY+26AqQuWs6D6s01qZn+jqPoak+9wYWO0+AAAAAAAA8D57UX08uHLxPhW3MQr+BvM+Jyo21dq/9D7MO39mnqD2PtugKkLlrPg+rNNamZ/o+j6GpPvcGFj9PgAAAAAAAAA/e1F9PLhyAT8VtzEK/gYDPycqNtXavwQ/zDt/Zp6gBj/boCpC5awIP6zTWpmf6Ao/hqT73BhYDT8AAAAAAAAQP3tRfTy4chE/FbcxCv4GEz8nKjbV2r8UP8w7f2aeoBY/zDt/Zp6gJj97UX08uHJBPxW3MQr+BkM/Jyo21dq/RD/MO39mnqBGP9ugKkLlrEg/rNNamZ/oSj+GpPvcGFhNPwAAAAAAAFA/e1F9PLhyUT8VtzEK/gZTPycqNtXav1Q/zDt/Zp6gVj/boCpC5axYP6zTWpmf6Fo/hqT73BhYXT8AAAAAAABgP3tRfTy4cmE/FbcxCv4GYz8nKjbV2r9kP8w7f2aeoGY/26AqQuWsaD+s01qZn+hqP4ak+9wYWG0/AAAAAAAAcD97UX08uHJxPxW3MQr+BnM/Jyo21dq/dD/MO39mnqB2P9ugKkLlrHg/rNNamZ/oej+GpPvcGFh9PwAAAAAAAIA/e1F9PLhygT8VtzEK/gaDPycqNtXav4Q/zDt/Zp6ghj/boCpC5ayIP6zTWpmf6Io/hqT73BhYjT8AAAAAAACQP3tRfTy4cpE/FbcxCv4Gkz8nKjbV2r+UP8w7f2aeoJY/26AqQuWsmD+s01qZn+iaP4ak+9wYWJ0/AAAAAAAAoD97UX08uHKhPxW3MQr+BqM/Jyo21dq/pD/MO39mnqCmP9ugKkLlrKg/rNNamZ/oqj+GpPvcGFitPwAAAAAAALA/e1F9PLhysT8VtzEK/gazPycqNtXav7Q/zDt/Zp6gtj/boCpC5ay4P6zTWpmf6Lo/hqT73BhYvT8AAAAAAADAP3tRfTy4csE/FbcxCv4Gwz8nKjbV2r/EP8w7f2aeoMY/26AqQuWsyD+s01qZn+jKP4ak+9wYWM0/AAAAAAAA0D97UX08uHLRPxW3MQr+BtM/Jyo21dq/1D/MO39mnqDWP9ugKkLlrNg/rNNamZ/o2j+GpPvcGFjdPwAAAAAAAOA/e1F9PLhy4T8VtzEK/gbjPycqNtXav+Q/zDt/Zp6g5j/boCpC5azoP6zTWpmf6Oo/hqT73BhY7T8AAAAAAADwP3tRfTy4cvE/FbcxCv4G8z8nKjbV2r/0P8w7f2aeoPY/26AqQuWs+D+s01qZn+j6P4ak+9wYWP0/AAAAAAAAAEB7UX08uHIBQBW3MQr+BgNAJyo21dq/BECGpPvcGFjNPgAAAAAAANA+e1F9PLhy0T4VtzEK/gbTPicqNtXav9Q+zDt/Zp6g1j7boCpC5azYPqzTWpmf6No+hqT73BhY3T4AAAAAAADgPntRfTy4cuE+FbcxCv4G4z4nKjbV2r/kPsw7f2aeoOY+26AqQuWs6D6s01qZn+jqPoak+9wYWO0+AAAAAAAA8D57UX08uHLxPhW3MQr+BvM+Jyo21dq/9D7MO39mnqD2PtugKkLlrPg+rNNamZ/o+j6GpPvcGFj9PgAAAAAAAAA/e1F9PLhyAT8VtzEK/gYDPycqNtXavwQ/zDt/Zp6gBj/boCpC5awIP6zTWpmf6Ao/hqT73BhYDT8AAAAAAAAQP3tRfTy4chE/FbcxCv4GEz8nKjbV2r8UP8w7f2aeoCY/e1F9PLhyQT8VtzEK/gZDPycqNtXav0Q/zDt/Zp6gRj/boCpC5axIP6zTWpmf6Eo/hqT73BhYTT8AAAAAAABQP3tRfTy4clE/FbcxCv4GUz8nKjbV2r9UP8w7f2aeoFY/26AqQuWsWD+s01qZn+haP4ak+9wYWF0/AAAAAAAAYD97UX08uHJhPxW3MQr+BmM/Jyo21dq/ZD/MO39mnqBmP9ugKkLlrGg/rNNamZ/oaj+GpPvcGFhtPwAAAAAAAHA/e1F9PLhycT8VtzEK/gZzPycqNtXav3Q/zDt/Zp6gdj/boCpC5ax4P6zTWpmf6Ho/hqT73BhYfT8AAAAAAACAP3tRfTy4coE/FbcxCv4Ggz8nKjbV2r+EP8w7f2aeoIY/26AqQuWsiD+s01qZn+iKP4ak+9wYWI0/AAAAAAAAkD97UX08uHKRPxW3MQr+BpM/Jyo21dq/lD/MO39mnqCWP9ugKkLlrJg/rNNamZ/omj+GpPvcGFidPwAAAAAAAKA/e1F9PLhyoT8VtzEK/gajPycqNtXav6Q/zDt/Zp6gpj/boCpC5ayoP6zTWpmf6Ko/hqT73BhYrT8AAAAAAACwP3tRfTy4crE/FbcxCv4Gsz8nKjbV2r+0P8w7f2aeoLY/26AqQuWsuD+s01qZn+i6P4ak+9wYWL0/AAAAAAAAwD97UX08uHLBPxW3MQr+BsM/Jyo21dq/xD/MO39mnqDGP9ugKkLlrMg/rNNamZ/oyj+GpPvcGFjNPwAAAAAAANA/e1F9PLhy0T8VtzEK/gbTPycqNtXav9Q/zDt/Zp6g1j/boCpC5azYP6zTWpmf6No/hqT73BhY3T8AAAAAAADgP3tRfTy4cuE/FbcxCv4G4z8nKjbV2r/kP8w7f2aeoOY/26AqQuWs6D+s01qZn+jqP4ak+9wYWO0/AAAAAAAA8D97UX08uHLxPxW3MQr+BvM/Jyo21dq/9D/MO39mnqD2P9ugKkLlrPg/rNNamZ/o+j8nKjbV2r8EQBW3MQr+BtM+Jyo21dq/1D7MO39mnqDWPtugKkLlrNg+rNNamZ/o2j6GpPvcGFjdPgAAAAAAAOA+e1F9PLhy4T4VtzEK/gbjPicqNtXav+Q+zDt/Zp6g5j7boCpC5azoPqzTWpmf6Oo+hqT73BhY7T4AAAAAAADwPntRfTy4cvE+FbcxCv4G8z4nKjbV2r/0Psw7f2aeoPY+26AqQuWs+D6s01qZn+j6Poak+9wYWP0+AAAAAAAAAD97UX08uHIBPxW3MQr+BgM/Jyo21dq/BD/MO39mnqAGP9ugKkLlrAg/rNNamZ/oCj+GpPvcGFgNPwAAAAAAABA/e1F9PLhyET8VtzEK/gYTPycqNtXavxQ/zDt/Zp6gFj/boCpC5awYP6zTWpmf6Bo/hqT73BhYHT8AAAAAAAAgP3tRfTy4ckE/FbcxCv4GQz8nKjbV2r9EP8w7f2aeoEY/26AqQuWsSD+s01qZn+hKP4ak+9wYWE0/AAAAAAAAUD97UX08uHJRPxW3MQr+BlM/Jyo21dq/VD/MO39mnqBWP9ugKkLlrFg/rNNamZ/oWj+GpPvcGFhdPwAAAAAAAGA/e1F9PLhyYT8VtzEK/gZjPycqNtXav2Q/zDt/Zp6gZj/boCpC5axoP6zTWpmf6Go/hqT73BhYbT8AAAAAAABwP3tRfTy4cnE/FbcxCv4Gcz8nKjbV2r90P8w7f2aeoHY/26AqQuWseD+s01qZn+h6P4ak+9wYWH0/AAAAAAAAgD97UX08uHKBPxW3MQr+BoM/Jyo21dq/hD/MO39mnqCGP9ugKkLlrIg/rNNamZ/oij+GpPvcGFiNPwAAAAAAAJA/e1F9PLhykT8VtzEK/gaTPycqNtXav5Q/zDt/Zp6glj/boCpC5ayYP6zTWpmf6Jo/hqT73BhYnT8AAAAAAACgP3tRfTy4cqE/FbcxCv4Goz8nKjbV2r+kP8w7f2aeoKY/26AqQuWsqD+s01qZn+iqP4ak+9wYWK0/AAAAAAAAsD97UX08uHKxPxW3MQr+BrM/Jyo21dq/tD/MO39mnqC2P9ugKkLlrLg/rNNamZ/ouj+GpPvcGFi9PwAAAAAAAMA/e1F9PLhywT8VtzEK/gbDPycqNtXav8Q/zDt/Zp6gxj/boCpC5azIP6zTWpmf6Mo/hqT73BhYzT8AAAAAAADQP9ugKkLlrNg/rNNamZ/o2j+GpPvcGFjdPwAAAAAAAOA/e1F9PLhy4T8VtzEK/gbjPycqNtXav+Q/zDt/Zp6g5j/boCpC5azoP6zTWpmf6Oo/hqT73BhY7T8AAAAAAADwP3tRfTy4cvE/FbcxCv4G8z8nKjbV2r/0P8w7f2aeoPY/26AqQuWs+D+s01qZn+j6PxW3MQr+BtM+Jyo21dq/1D7MO39mnqDWPtugKkLlrNg+rNNamZ/o2j6GpPvcGFjdPgAAAAAAAOA+e1F9PLhy4T4VtzEK/gbjPicqNtXav+Q+zDt/Zp6g5j7boCpC5azoPqzTWpmf6Oo+hqT73BhY7T4AAAAAAADwPntRfTy4cvE+FbcxCv4G8z4nKjbV2r/0Psw7f2aeoPY+26AqQuWs+D6s01qZn+j6Poak+9wYWP0+AAAAAAAAAD97UX08uHIBPxW3MQr+BgM/Jyo21dq/BD/MO39mnqAGP9ugKkLlrAg/rNNamZ/oCj+GpPvcGFgNPwAAAAAAABA/e1F9PLhyET8VtzEK/gYTPycqNtXavxQ/zDt/Zp6gFj/boCpC5awYP6zTWpmf6Bo/hqT73BhYHT8AAAAAAAAgP3tRfTy4ckE/FbcxCv4GQz8nKjbV2r9EP8w7f2aeoEY/26AqQuWsSD+s01qZn+hKP4ak+9wYWE0/AAAAAAAAUD97UX08uHJRPxW3MQr+BlM/Jyo21dq/VD/MO39mnqBWP9ugKkLlrFg/rNNamZ/oWj+GpPvcGFhdPwAAAAAAAGA/e1F9PLhyYT8VtzEK/gZjPycqNtXav2Q/zDt/Zp6gZj/boCpC5axoP6zTWpmf6Go/hqT73BhYbT8AAAAAAABwP3tRfTy4cnE/FbcxCv4Gcz8nKjbV2r90P8w7f2aeoHY/26AqQuWseD+s01qZn+h6P4ak+9wYWH0/AAAAAAAAgD97UX08uHKBPxW3MQr+BoM/Jyo21dq/hD/MO39mnqCGP9ugKkLlrIg/rNNamZ/oij+GpPvcGFiNPwAAAAAAAJA/e1F9PLhykT8VtzEK/gaTPycqNtXav5Q/zDt/Zp6glj/boCpC5ayYP6zTWpmf6Jo/hqT73BhYnT8AAAAAAACgP3tRfTy4cqE/FbcxCv4Goz8nKjbV2r+kP8w7f2aeoKY/26AqQuWsqD+s01qZn+iqP4ak+9wYWK0/AAAAAAAAsD97UX08uHKxPxW3MQr+BrM/Jyo21dq/tD/MO39mnqC2P9ugKkLlrLg/rNNamZ/ouj+GpPvcGFi9PwAAAAAAAMA/e1F9PLhywT8VtzEK/gbDPycqNtXav8Q/zDt/Zp6gxj/boCpC5azIP6zTWpmf6Mo/hqT73BhYzT/boCpC5azYP6zTWpmf6No/hqT73BhY3T8AAAAAAADgP3tRfTy4cuE/FbcxCv4G4z8nKjbV2r/kP8w7f2aeoOY/26AqQuWs6D+s01qZn+jqP4ak+9wYWO0/AAAAAAAA8D97UX08uHLxPxW3MQr+BvM/Jyo21dq/9D/MO39mnqD2P9ugKkLlrPg/rNNamZ/o+j97UX08uHLRPhW3MQr+BtM+Jyo21dq/1D7MO39mnqDWPtugKkLlrNg+rNNamZ/o2j6GpPvcGFjdPgAAAAAAAOA+e1F9PLhy4T4VtzEK/gbjPicqNtXav+Q+zDt/Zp6g5j7boCpC5azoPqzTWpmf6Oo+hqT73BhY7T4AAAAAAADwPntRfTy4cvE+FbcxCv4G8z4nKjbV2r/0Psw7f2aeoPY+26AqQuWs+D6s01qZn+j6Poak+9wYWP0+AAAAAAAAAD97UX08uHIBPxW3MQr+BgM/Jyo21dq/BD/MO39mnqAGP9ugKkLlrAg/rNNamZ/oCj+GpPvcGFgNPwAAAAAAABA/e1F9PLhyET8VtzEK/gYTPycqNtXavxQ/zDt/Zp6gFj/boCpC5awYP6zTWpmf6Bo/hqT73BhYHT8AAAAAAAAgP3tRfTy4ckE/FbcxCv4GQz8nKjbV2r9EP8w7f2aeoEY/26AqQuWsSD+s01qZn+hKP4ak+9wYWE0/AAAAAAAAUD97UX08uHJRPxW3MQr+BlM/Jyo21dq/VD/MO39mnqBWP9ugKkLlrFg/rNNamZ/oWj+GpPvcGFhdPwAAAAAAAGA/e1F9PLhyYT8VtzEK/gZjPycqNtXav2Q/zDt/Zp6gZj/boCpC5axoP6zTWpmf6Go/hqT73BhYbT8AAAAAAABwP3tRfTy4cnE/FbcxCv4Gcz8nKjbV2r90P8w7f2aeoHY/26AqQuWseD+s01qZn+h6P4ak+9wYWH0/AAAAAAAAgD97UX08uHKBPxW3MQr+BoM/Jyo21dq/hD/MO39mnqCGP9ugKkLlrIg/rNNamZ/oij+GpPvcGFiNPwAAAAAAAJA/e1F9PLhykT8VtzEK/gaTPycqNtXav5Q/zDt/Zp6glj/boCpC5ayYP6zTWpmf6Jo/hqT73BhYnT8AAAAAAACgP3tRfTy4cqE/FbcxCv4Goz8nKjbV2r+kP8w7f2aeoKY/26AqQuWsqD+s01qZn+iqP4ak+9wYWK0/AAAAAAAAsD97UX08uHKxPxW3MQr+BrM/Jyo21dq/tD/MO39mnqC2P9ugKkLlrLg/rNNamZ/ouj+GpPvcGFi9PwAAAAAAAMA/e1F9PLhywT8VtzEK/gbDPycqNtXav8Q/zDt/Zp6gxj/boCpC5azIP6zTWpmf6Mo/hqT73BhYzT8AAAAAAADQP8w7f2aeoNY/26AqQuWs2D+s01qZn+jaP4ak+9wYWN0/AAAAAAAA4D97UX08uHLhPxW3MQr+BuM/Jyo21dq/5D/MO39mnqDmP9ugKkLlrOg/rNNamZ/o6j+GpPvcGFjtPwAAAAAAAPA/e1F9PLhy8T8VtzEK/gbzPycqNtXav/Q/zDt/Zp6g9j/boCpC5az4P6zTWpmf6Po/hqT73BhY/T8AAAAAAAAAQCcqNtXav9Q+zDt/Zp6g1j7boCpC5azYPqzTWpmf6No+hqT73BhY3T4AAAAAAADgPntRfTy4cuE+FbcxCv4G4z4nKjbV2r/kPsw7f2aeoOY+26AqQuWs6D6s01qZn+jqPoak+9wYWO0+AAAAAAAA8D57UX08uHLxPhW3MQr+BvM+Jyo21dq/9D7MO39mnqD2PtugKkLlrPg+rNNamZ/o+j6GpPvcGFj9PgAAAAAAAAA/e1F9PLhyAT8VtzEK/gYDPycqNtXavwQ/zDt/Zp6gBj/boCpC5awIP6zTWpmf6Ao/hqT73BhYDT8AAAAAAAAQP3tRfTy4chE/FbcxCv4GEz8nKjbV2r8UP8w7f2aeoBY/26AqQuWsGD97UX08uHJBPxW3MQr+BkM/Jyo21dq/RD/MO39mnqBGP9ugKkLlrEg/rNNamZ/oSj+GpPvcGFhNPwAAAAAAAFA/e1F9PLhyUT8VtzEK/gZTPycqNtXav1Q/zDt/Zp6gVj/boCpC5axYP6zTWpmf6Fo/hqT73BhYXT8AAAAAAABgP3tRfTy4cmE/FbcxCv4GYz8nKjbV2r9kP8w7f2aeoGY/26AqQuWsaD+s01qZn+hqP4ak+9wYWG0/AAAAAAAAcD97UX08uHJxPxW3MQr+BnM/Jyo21dq/dD/MO39mnqB2P9ugKkLlrHg/rNNamZ/oej+GpPvcGFh9PwAAAAAAAIA/e1F9PLhygT8VtzEK/gaDPycqNtXav4Q/zDt/Zp6ghj/boCpC5ayIP6zTWpmf6Io/hqT73BhYjT8AAAAAAACQP3tRfTy4cpE/FbcxCv4Gkz8nKjbV2r+UP8w7f2aeoJY/26AqQuWsmD+s01qZn+iaP4ak+9wYWJ0/AAAAAAAAoD97UX08uHKhPxW3MQr+BqM/Jyo21dq/pD/MO39mnqCmP9ugKkLlrKg/rNNamZ/oqj+GpPvcGFitPwAAAAAAALA/e1F9PLhysT8VtzEK/gazPycqNtXav7Q/zDt/Zp6gtj/boCpC5ay4P6zTWpmf6Lo/hqT73BhYvT8AAAAAAADAP3tRfTy4csE/FbcxCv4Gwz8nKjbV2r/EP8w7f2aeoMY/26AqQuWsyD+s01qZn+jKP4ak+9wYWM0/AAAAAAAA0D97UX08uHLRPxW3MQr+BtM/Jyo21dq/1D/MO39mnqDWP9ugKkLlrNg/rNNamZ/o2j+GpPvcGFjdPwAAAAAAAOA/e1F9PLhy4T8VtzEK/gbjPycqNtXav+Q/zDt/Zp6g5j/boCpC5azoP6zTWpmf6Oo/hqT73BhY7T8AAAAAAADwP3tRfTy4cvE/FbcxCv4G8z8nKjbV2r/0P8w7f2aeoPY/26AqQuWs+D+s01qZn+j6P4ak+9wYWP0/AAAAAAAAAEB7UX08uHIBQAAAAAAAANA+e1F9PLhy0T4VtzEK/gbTPicqNtXav9Q+zDt/Zp6g1j7boCpC5azYPqzTWpmf6No+hqT73BhY3T4AAAAAAADgPntRfTy4cuE+FbcxCv4G4z4nKjbV2r/kPsw7f2aeoOY+26AqQuWs6D6s01qZn+jqPoak+9wYWO0+AAAAAAAA8D57UX08uHLxPhW3MQr+BvM+Jyo21dq/9D7MO39mnqD2PtugKkLlrPg+rNNamZ/o+j6GpPvcGFj9PgAAAAAAAAA/e1F9PLhyAT8VtzEK/gYDPycqNtXavwQ/zDt/Zp6gBj/boCpC5awIP6zTWpmf6Ao/hqT73BhYDT8AAAAAAAAQP3tRfTy4chE/FbcxCv4GEz8nKjbV2r8UP8w7f2aeoBY/26AqQuWsGD/boCpC5awoP3tRfTy4ckE/FbcxCv4GQz8nKjbV2r9EP8w7f2aeoEY/26AqQuWsSD+s01qZn+hKP4ak+9wYWE0/AAAAAAAAUD97UX08uHJRPxW3MQr+BlM/Jyo21dq/VD/MO39mnqBWP9ugKkLlrFg/rNNamZ/oWj+GpPvcGFhdPwAAAAAAAGA/e1F9PLhyYT8VtzEK/gZjPycqNtXav2Q/zDt/Zp6gZj/boCpC5axoP6zTWpmf6Go/hqT73BhYbT8AAAAAAABwP3tRfTy4cnE/FbcxCv4Gcz8nKjbV2r90P8w7f2aeoHY/26AqQuWseD+s01qZn+h6P4ak+9wYWH0/AAAAAAAAgD97UX08uHKBPxW3MQr+BoM/Jyo21dq/hD/MO39mnqCGP9ugKkLlrIg/rNNamZ/oij+GpPvcGFiNPwAAAAAAAJA/e1F9PLhykT8VtzEK/gaTPycqNtXav5Q/zDt/Zp6glj/boCpC5ayYP6zTWpmf6Jo/hqT73BhYnT8AAAAAAACgP3tRfTy4cqE/FbcxCv4Goz8nKjbV2r+kP8w7f2aeoKY/26AqQuWsqD+s01qZn+iqP4ak+9wYWK0/AAAAAAAAsD97UX08uHKxPxW3MQr+BrM/Jyo21dq/tD/MO39mnqC2P9ugKkLlrLg/rNNamZ/ouj+GpPvcGFi9PwAAAAAAAMA/e1F9PLhywT8VtzEK/gbDPycqNtXav8Q/zDt/Zp6gxj/boCpC5azIP6zTWpmf6Mo/hqT73BhYzT8AAAAAAADQP3tRfTy4ctE/FbcxCv4G0z8nKjbV2r/UP8w7f2aeoNY/26AqQuWs2D+s01qZn+jaP4ak+9wYWN0/AAAAAAAA4D97UX08uHLhPxW3MQr+BuM/Jyo21dq/5D/MO39mnqDmP9ugKkLlrOg/rNNamZ/o6j+GpPvcGFjtPwAAAAAAAPA/e1F9PLhy8T8VtzEK/gbzPycqNtXav/Q/zDt/Zp6g9j/boCpC5az4P6zTWpmf6Po/hqT73BhY/T8AAAAAAAAAQHtRfTy4cgFAFbcxCv4GA0AnKjbV2r8EQMw7f2aeoAZAAAAAAAAA0D57UX08uHLRPhW3MQr+BtM+Jyo21dq/1D7MO39mnqDWPtugKkLlrNg+rNNamZ/o2j6GpPvcGFjdPgAAAAAAAOA+e1F9PLhy4T4VtzEK/gbjPicqNtXav+Q+zDt/Zp6g5j7boCpC5azoPqzTWpmf6Oo+hqT73BhY7T4AAAAAAADwPntRfTy4cvE+FbcxCv4G8z4nKjbV2r/0Psw7f2aeoPY+26AqQuWs+D6s01qZn+j6Poak+9wYWP0+AAAAAAAAAD97UX08uHIBPxW3MQr+BgM/Jyo21dq/BD/MO39mnqAGP9ugKkLlrAg/rNNamZ/oCj+GpPvcGFgNPwAAAAAAABA/e1F9PLhyET8VtzEK/gYTPycqNtXavxQ/zDt/Zp6gFj/boCpC5awYP9ugKkLlrCg/FbcxCv4GQz8nKjbV2r9EP8w7f2aeoEY/26AqQuWsSD+s01qZn+hKP4ak+9wYWE0/AAAAAAAAUD97UX08uHJRPxW3MQr+BlM/Jyo21dq/VD/MO39mnqBWP9ugKkLlrFg/rNNamZ/oWj+GpPvcGFhdPwAAAAAAAGA/e1F9PLhyYT8VtzEK/gZjPycqNtXav2Q/zDt/Zp6gZj/boCpC5axoP6zTWpmf6Go/hqT73BhYbT8AAAAAAABwP3tRfTy4cnE/FbcxCv4Gcz8nKjbV2r90P8w7f2aeoHY/26AqQuWseD+s01qZn+h6P4ak+9wYWH0/AAAAAAAAgD97UX08uHKBPxW3MQr+BoM/Jyo21dq/hD/MO39mnqCGP9ugKkLlrIg/rNNamZ/oij+GpPvcGFiNPwAAAAAAAJA/e1F9PLhykT8VtzEK/gaTPycqNtXav5Q/zDt/Zp6glj/boCpC5ayYP6zTWpmf6Jo/hqT73BhYnT8AAAAAAACgP3tRfTy4cqE/FbcxCv4Goz8nKjbV2r+kP8w7f2aeoKY/26AqQuWsqD+s01qZn+iqP4ak+9wYWK0/AAAAAAAAsD97UX08uHKxPxW3MQr+BrM/Jyo21dq/tD/MO39mnqC2P9ugKkLlrLg/rNNamZ/ouj+GpPvcGFi9PwAAAAAAAMA/e1F9PLhywT8VtzEK/gbDPycqNtXav8Q/zDt/Zp6gxj/boCpC5azIP6zTWpmf6Mo/hqT73BhYzT8AAAAAAADQP3tRfTy4ctE/FbcxCv4G0z8nKjbV2r/UP8w7f2aeoNY/26AqQuWs2D+s01qZn+jaP4ak+9wYWN0/AAAAAAAA4D97UX08uHLhPxW3MQr+BuM/Jyo21dq/5D/MO39mnqDmP9ugKkLlrOg/rNNamZ/o6j+GpPvcGFjtPwAAAAAAAPA/e1F9PLhy8T8VtzEK/gbzPycqNtXav/Q/zDt/Zp6g9j/boCpC5az4P6zTWpmf6Po/hqT73BhY/T8AAAAAAAAAQHtRfTy4cgFAFbcxCv4GA0AnKjbV2r8EQMw7f2aeoAZAAAAAAAAA0D57UX08uHLRPhW3MQr+BtM+Jyo21dq/1D7MO39mnqDWPtugKkLlrNg+rNNamZ/o2j6GpPvcGFjdPgAAAAAAAOA+e1F9PLhy4T4VtzEK/gbjPicqNtXav+Q+zDt/Zp6g5j7boCpC5azoPqzTWpmf6Oo+hqT73BhY7T4AAAAAAADwPntRfTy4cvE+FbcxCv4G8z4nKjbV2r/0Psw7f2aeoPY+26AqQuWs+D6s01qZn+j6Poak+9wYWP0+AAAAAAAAAD97UX08uHIBPxW3MQr+BgM/Jyo21dq/BD/MO39mnqAGP9ugKkLlrAg/rNNamZ/oCj+GpPvcGFgNPwAAAAAAABA/e1F9PLhyET8VtzEK/gYTPycqNtXavxQ/zDt/Zp6gFj/boCpC5awoPxW3MQr+BkM/Jyo21dq/RD/MO39mnqBGP9ugKkLlrEg/rNNamZ/oSj+GpPvcGFhNPwAAAAAAAFA/e1F9PLhyUT8VtzEK/gZTPycqNtXav1Q/zDt/Zp6gVj/boCpC5axYP6zTWpmf6Fo/hqT73BhYXT8AAAAAAABgP3tRfTy4cmE/FbcxCv4GYz8nKjbV2r9kP8w7f2aeoGY/26AqQuWsaD+s01qZn+hqP4ak+9wYWG0/AAAAAAAAcD97UX08uHJxPxW3MQr+BnM/Jyo21dq/dD/MO39mnqB2P9ugKkLlrHg/rNNamZ/oej+GpPvcGFh9PwAAAAAAAIA/e1F9PLhygT8VtzEK/gaDPycqNtXav4Q/zDt/Zp6ghj/boCpC5ayIP6zTWpmf6Io/hqT73BhYjT8AAAAAAACQP3tRfTy4cpE/FbcxCv4Gkz8nKjbV2r+UP8w7f2aeoJY/26AqQuWsmD+s01qZn+iaP4ak+9wYWJ0/AAAAAAAAoD97UX08uHKhPxW3MQr+BqM/Jyo21dq/pD/MO39mnqCmP9ugKkLlrKg/rNNamZ/oqj+GpPvcGFitPwAAAAAAALA/e1F9PLhysT8VtzEK/gazPycqNtXav7Q/zDt/Zp6gtj/boCpC5ay4P6zTWpmf6Lo/hqT73BhYvT8AAAAAAADAP3tRfTy4csE/FbcxCv4Gwz8nKjbV2r/EP8w7f2aeoMY/26AqQuWsyD+s01qZn+jKP4ak+9wYWM0/AAAAAAAA0D97UX08uHLRPxW3MQr+BtM/Jyo21dq/1D/MO39mnqDWP9ugKkLlrNg/rNNamZ/o2j+GpPvcGFjdPwAAAAAAAOA/e1F9PLhy4T8VtzEK/gbjPycqNtXav+Q/zDt/Zp6g5j/boCpC5azoP6zTWpmf6Oo/hqT73BhY7T8AAAAAAADwP3tRfTy4cvE/FbcxCv4G8z8nKjbV2r/0P8w7f2aeoPY/26AqQuWs+D+s01qZn+j6P4ak+9wYWP0/zDt/Zp6gBkAnKjbV2r/UPsw7f2aeoNY+26AqQuWs2D6s01qZn+jaPoak+9wYWN0+AAAAAAAA4D57UX08uHLhPhW3MQr+BuM+Jyo21dq/5D7MO39mnqDmPtugKkLlrOg+rNNamZ/o6j6GpPvcGFjtPgAAAAAAAPA+e1F9PLhy8T4VtzEK/gbzPicqNtXav/Q+zDt/Zp6g9j7boCpC5az4PqzTWpmf6Po+hqT73BhY/T4AAAAAAAAAP3tRfTy4cgE/FbcxCv4GAz8nKjbV2r8EP8w7f2aeoAY/26AqQuWsCD+s01qZn+gKP4ak+9wYWA0/AAAAAAAAED97UX08uHIRPxW3MQr+BhM/Jyo21dq/FD/MO39mnqAWP9ugKkLlrBg/rNNamZ/oGj+GpPvcGFgdPwAAAAAAACA/e1F9PLhyIT8VtzEK/gZDPycqNtXav0Q/zDt/Zp6gRj/boCpC5axIP6zTWpmf6Eo/hqT73BhYTT8AAAAAAABQP3tRfTy4clE/FbcxCv4GUz8nKjbV2r9UP8w7f2aeoFY/26AqQuWsWD+s01qZn+haP4ak+9wYWF0/AAAAAAAAYD97UX08uHJhPxW3MQr+BmM/Jyo21dq/ZD/MO39mnqBmP9ugKkLlrGg/rNNamZ/oaj+GpPvcGFhtPwAAAAAAAHA/e1F9PLhycT8VtzEK/gZzPycqNtXav3Q/zDt/Zp6gdj/boCpC5ax4P6zTWpmf6Ho/hqT73BhYfT8AAAAAAACAP3tRfTy4coE/FbcxCv4Ggz8nKjbV2r+EP8w7f2aeoIY/26AqQuWsiD+s01qZn+iKP4ak+9wYWI0/AAAAAAAAkD97UX08uHKRPxW3MQr+BpM/Jyo21dq/lD/MO39mnqCWP9ugKkLlrJg/rNNamZ/omj+GpPvcGFidPwAAAAAAAKA/e1F9PLhyoT8VtzEK/gajPycqNtXav6Q/zDt/Zp6gpj/boCpC5ayoP6zTWpmf6Ko/hqT73BhYrT8AAAAAAACwP3tRfTy4crE/FbcxCv4Gsz8nKjbV2r+0P8w7f2aeoLY/26AqQuWsuD+s01qZn+i6P4ak+9wYWL0/AAAAAAAAwD97UX08uHLBPxW3MQr+BsM/Jyo21dq/xD/MO39mnqDGP9ugKkLlrMg/rNNamZ/oyj+GpPvcGFjNPwAAAAAAANA/e1F9PLhy0T+s01qZn+jaP4ak+9wYWN0/AAAAAAAA4D97UX08uHLhPxW3MQr+BuM/Jyo21dq/5D/MO39mnqDmP9ugKkLlrOg/rNNamZ/o6j+GpPvcGFjtPwAAAAAAAPA/e1F9PLhy8T8VtzEK/gbzPycqNtXav/Q/zDt/Zp6g9j/boCpC5az4P6zTWpmf6Po/hqT73BhY/T8nKjbV2r/UPsw7f2aeoNY+26AqQuWs2D6s01qZn+jaPoak+9wYWN0+AAAAAAAA4D57UX08uHLhPhW3MQr+BuM+Jyo21dq/5D7MO39mnqDmPtugKkLlrOg+rNNamZ/o6j6GpPvcGFjtPgAAAAAAAPA+e1F9PLhy8T4VtzEK/gbzPicqNtXav/Q+zDt/Zp6g9j7boCpC5az4PqzTWpmf6Po+hqT73BhY/T4AAAAAAAAAP3tRfTy4cgE/FbcxCv4GAz8nKjbV2r8EP8w7f2aeoAY/26AqQuWsCD+s01qZn+gKP4ak+9wYWA0/AAAAAAAAED97UX08uHIRPxW3MQr+BhM/Jyo21dq/FD/MO39mnqAWP9ugKkLlrBg/rNNamZ/oGj+GpPvcGFgdPwAAAAAAACA/e1F9PLhyIT8VtzEK/gZDPycqNtXav0Q/zDt/Zp6gRj/boCpC5axIP6zTWpmf6Eo/hqT73BhYTT8AAAAAAABQP3tRfTy4clE/FbcxCv4GUz8nKjbV2r9UP8w7f2aeoFY/26AqQuWsWD+s01qZn+haP4ak+9wYWF0/AAAAAAAAYD97UX08uHJhPxW3MQr+BmM/Jyo21dq/ZD/MO39mnqBmP9ugKkLlrGg/rNNamZ/oaj+GpPvcGFhtPwAAAAAAAHA/e1F9PLhycT8VtzEK/gZzPycqNtXav3Q/zDt/Zp6gdj/boCpC5ax4P6zTWpmf6Ho/hqT73BhYfT8AAAAAAACAP3tRfTy4coE/FbcxCv4Ggz8nKjbV2r+EP8w7f2aeoIY/26AqQuWsiD+s01qZn+iKP4ak+9wYWI0/AAAAAAAAkD97UX08uHKRPxW3MQr+BpM/Jyo21dq/lD/MO39mnqCWP9ugKkLlrJg/rNNamZ/omj+GpPvcGFidPwAAAAAAAKA/e1F9PLhyoT8VtzEK/gajPycqNtXav6Q/zDt/Zp6gpj/boCpC5ayoP6zTWpmf6Ko/hqT73BhYrT8AAAAAAACwP3tRfTy4crE/FbcxCv4Gsz8nKjbV2r+0P8w7f2aeoLY/26AqQuWsuD+s01qZn+i6P4ak+9wYWL0/AAAAAAAAwD97UX08uHLBPxW3MQr+BsM/Jyo21dq/xD/MO39mnqDGP9ugKkLlrMg/rNNamZ/oyj+GpPvcGFjNPwAAAAAAANA/rNNamZ/o2j+GpPvcGFjdPwAAAAAAAOA/e1F9PLhy4T8VtzEK/gbjPycqNtXav+Q/zDt/Zp6g5j/boCpC5azoP6zTWpmf6Oo/hqT73BhY7T8AAAAAAADwP3tRfTy4cvE/FbcxCv4G8z8nKjbV2r/0P8w7f2aeoPY/26AqQuWs+D+s01qZn+j6P4ak+9wYWP0/FbcxCv4G0z4nKjbV2r/UPsw7f2aeoNY+26AqQuWs2D6s01qZn+jaPoak+9wYWN0+AAAAAAAA4D57UX08uHLhPhW3MQr+BuM+Jyo21dq/5D7MO39mnqDmPtugKkLlrOg+rNNamZ/o6j6GpPvcGFjtPgAAAAAAAPA+e1F9PLhy8T4VtzEK/gbzPicqNtXav/Q+zDt/Zp6g9j7boCpC5az4PqzTWpmf6Po+hqT73BhY/T4AAAAAAAAAP3tRfTy4cgE/FbcxCv4GAz8nKjbV2r8EP8w7f2aeoAY/26AqQuWsCD+s01qZn+gKP4ak+9wYWA0/AAAAAAAAED97UX08uHIRPxW3MQr+BhM/Jyo21dq/FD/MO39mnqAWP9ugKkLlrBg/rNNamZ/oGj+GpPvcGFgdPwAAAAAAACA/e1F9PLhyIT8VtzEK/gZDPycqNtXav0Q/zDt/Zp6gRj/boCpC5axIP6zTWpmf6Eo/hqT73BhYTT8AAAAAAABQP3tRfTy4clE/FbcxCv4GUz8nKjbV2r9UP8w7f2aeoFY/26AqQuWsWD+s01qZn+haP4ak+9wYWF0/AAAAAAAAYD97UX08uHJhPxW3MQr+BmM/Jyo21dq/ZD/MO39mnqBmP9ugKkLlrGg/rNNamZ/oaj+GpPvcGFhtPwAAAAAAAHA/e1F9PLhycT8VtzEK/gZzPycqNtXav3Q/zDt/Zp6gdj/boCpC5ax4P6zTWpmf6Ho/hqT73BhYfT8AAAAAAACAP3tRfTy4coE/FbcxCv4Ggz8nKjbV2r+EP8w7f2aeoIY/26AqQuWsiD+s01qZn+iKP4ak+9wYWI0/AAAAAAAAkD97UX08uHKRPxW3MQr+BpM/Jyo21dq/lD/MO39mnqCWP9ugKkLlrJg/rNNamZ/omj+GpPvcGFidPwAAAAAAAKA/e1F9PLhyoT8VtzEK/gajPycqNtXav6Q/zDt/Zp6gpj/boCpC5ayoP6zTWpmf6Ko/hqT73BhYrT8AAAAAAACwP3tRfTy4crE/FbcxCv4Gsz8nKjbV2r+0P8w7f2aeoLY/26AqQuWsuD+s01qZn+i6P4ak+9wYWL0/AAAAAAAAwD97UX08uHLBPxW3MQr+BsM/Jyo21dq/xD/MO39mnqDGP9ugKkLlrMg/rNNamZ/oyj+GpPvcGFjNPwAAAAAAANA/e1F9PLhy0T/boCpC5azYP6zTWpmf6No/hqT73BhY3T8AAAAAAADgP3tRfTy4cuE/FbcxCv4G4z8nKjbV2r/kP8w7f2aeoOY/26AqQuWs6D+s01qZn+jqP4ak+9wYWO0/AAAAAAAA8D97UX08uHLxPxW3MQr+BvM/Jyo21dq/9D/MO39mnqD2P9ugKkLlrPg/rNNamZ/o+j+GpPvcGFj9PwAAAAAAAABAe1F9PLhyAUCSbuewulq3P+IZ8VmRFfg/ULCjXnSADUA21Om+14UPQM3CtNxxHwlAWEegBdCXC0Dxx4kydksMQKKEe24FYQxADiWvAcOyDUCfBJehfjkIQOT4EcwiVwNA8AVAsZtkAEA2M7yFb778P/mITuC4j/A/KiRQccQT4j9Dn0dj2hvVP8zFuFiV19A/Dq1jJofyyj/2ZW2yGJ7AP0JxWv+VDLo/Kk6Y1OCotD86AYC46sKzP2TqOXPhqLQ/+YoogFaKrj9eTKqIICugP3AaBbsF96E/RPaLftWOhT/BL0wxoyaZPxxuxiQG95E/cRVJ+Ab3kT8AAAAAAAAAACVqh9fTjoU/AAAAAAAAAAAAAAAAAAAAAJYGFzJ0vmw/aJvv+Wa+bD9om+/5Zr5sPyp6OJWcJpk/p7P4R2q+rD+ns/hHar6sP/GEDGoPEbE/qH6r2fXcsj9C43vSnSapP0hw+2wC96E/Kno4lZwmmT9om+/5Zr6MP+cAV5/nwrM/ph23eM6OtT/RRDOcCITBP8wxbU142Ls/KGBBJ6xAyD9SGdOEkwzKP2k/zdGNStE/Idl9/bPNxz8wIX4CdUvMPzO1xW3TjtU/STabPghY5j/Iyc5Zt/niP+DLJUe6Wtc/ZI/JjezC4z+1URhnRUT0PxXcivytQPg/d4q9U8gK9D8w/FbygWXrP0Jamu9fQwlAoMQZeLpaMkCvskzvUZNJQFfuGFLOAU9Ag7KqvfncR0Cqlh9p7o07QH/VMv2pSSpAy6gTrJkDGEDvhdDigM8NQMMTa0iSqwVAZNAzBSnkAkC7LpswZQUCQIs07ghxVAJAhz4U0536BUDJrWjaix4GQMvWVn305QBAVDxGSt1HAECaO8pco7z2P+vQsfM69fs/0N4DGdbvEUBmro6cF9MBQEZPNamYOOU/Duh12sZ01j+E7Syp8k/TPz1wT62Of8o/w2KWZnvYuz9LQkbJ7MKzP04a8Y7eqLQ/mdcXg0lwvz9Aq3XaxnS2PwA85TjTjrU/sFhEUQX3sT8MKERRBfehPyVmaoY9Idc/NfUeVe8jAEB9l0xRq9/zP0WDh7XNAdY/S4P5bnzYuz+VEI+3cb6cP8Ml1KulJpk/rkB44s6OhT8+aQzkcL6MPzR2+Udqvow/7FiBMNKOhT9g2T6qA/eRP+xYgTDSjoU/AAAAAAAAAADmywGWbb5sPwAAAAAAAAAA5ssBlm2+jD/dEv9c0Y6VP4vp3GK3Wqc/Hvaeg+rCoz/sWIEw0o6FP+bLAZZtvmw/5ssBlm2+bD/mywGWbb58P+bLAZZtvmw/AAAAAAAAAACos/hHar58P+bLAZZtvnw/7FiBMNKOhT/mywGWbb58P+bLAZZtvnw/5ssBlm2+fD8AAAAAAAAAAObLAZZtvmw/5ssBlm2+bD8HyEiUgbRtPwAAAAAAAAAAAAAAAAAAAAAfKDZ4y1SwP93tn7mGvvY/z6oJ3PRtDECz1sFFhTcLQMr70fZbFAVAufg9JqFCB0CsXnD4z80GQOrgykMQBQhABAQKZtArCUC9oWUs/LkFQFHhT8E7FAFAcNGsTxwb/T/OZ7orIsT7P0SkiVp9COs/qgkxE67G4D91Min2iAnUP4DuOoriZNA//zS7znmTxz+II1oqlBe9P+ltfvtfwLY/b89lyWhWuD+2k9PWrTCwP/WQG3CIY7A/cQvaKC92qT8eOwTqKc6lP78W+fpfs6c/J6P3zReojD/7zgDCRb+VP3GKoa8zmIU/tPW3wozUhT98jcYwo8F8P6w3E3x864w/AAAAAAAAAAAAAAAAAAAAAEZpZ6NYZmw/Rmlno1hmbD8AP4E7AetsPwA/gTsB63w/Q8e/bTHwnD8SLdvDreSjP+JoA/+9UKk/Q8e/bTHwrD/iaAP/vVCpP2OfT0bRUqk/AkGT112zlT/h/XwM9BSSP+JoA/+9UJk/oOLWaOoTsj/aBJG+wvuyPz+LvS9GPLo/WDqz3hZAuj8MjVxsjxPCPyQ4EJpSuco/MKLiGqeWyD9gDEaGtn3DP3wNnCEdecg/Zerq3YG20T/2Qoqdn+vhP1MwDuzJN+A/okveucOs1D8qAkfAuYreP3ZWrJWXjfA/THXZrVB09z+cRx1PEDzwP81HNc/0xeY/FsaFchHyBUBgFyyDGIwvQPodoukEw0VAcXQ5yTpiS0D8Y+VIBSdFQK+5tYQhRDhAAtosR4swKECuL8MdM5EVQBInbI7VTgpAS92wdZ4nA0A356AxZov/P0TDbz0qQ/0/lCgfJoUd/z8XqrIswqQCQBjMw5NUGgRAdJXcKfiLAEAMxH71cUD+P+ScCBIL5PY/VAwjY24S+D/OzSwkaMENQGCIQJnqvf4/fADhv+Kv4D+op/Zj53TRP3tJzYg8M8s/0SjzJeqbxj8xqyYRfe28P7bfS2XoSbA/NpEl/x8zsj/4XTMbhrG1Pz+BULeMdLA/O+U9Tb+wpT8GSL1DAPmhPwBt2PaQHaI/og2LHO0D2D8o6wp2qQz+P7YKtI2Rzu0/o+vfEp1i0j90iy1ec/uyPxqJrukfIpk/Ldj0TrPukT9maKO0i9ClP3sdD0GGLJI/9x0yVDRFoD+2cmshKsmFP7Y4UM3SO5I/XIIXLkkpjT/QmEnUCz5tP+H9fAz0FJI/AD+BOwHrbD/QmEnUCz6NP+hr5YeGFH0/RdfU29t8qT9pojHPmRadP9CYSdQLPn0/0JhJ1As+bT8AAAAAAAAAANCYSdQLPn0/C4HYOzLSfD8AAAAAAAAAALH7dvopdmw/0JhJ1As+fT/QmEnUCz59P5wyN9+I7oU/0JhJ1As+bT/QmEnUCz5tP9CYSdQLPm0/0JhJ1As+bT/QmEnUCz5tPwAAAAAAAAAAAAAAAAAAAADQmEnUCz5tP+bLAZZtvmw/AAAAAAAAAAAAAAAAAAAAAObLAZZtvqw/jX+aZND49z/FdBbTWUwPQI1/mmTQ+A9ATf2eW+LUB0CDkXasQBgJQBGnfs8tcQpAuSVO/Z5bCkDwuSVO/Z4LQGGkHSsQRgpAncV0FtNZBEDiCblaF54AQLyG8hrKawBAuyVO/Z5b8j9sKK+hvIbiP8mg8U+TDNo/XkN5DeU11D+YmZmZmZnJPxEREREREcE/jUrRw96otD+j6GFvVIq+P+1YgTDSjrU/TGcxncV0tj/lywGWbb6sP+bLAZZtvqw/Jq+hvIbyqj9wH8F9BPeRP3AfwX0E95E/7FiBMNKOhT/mywGWbb58P+bLAZZtvnw/5ssBlm2+jD8AAAAAAAAAAObLAZZtvmw/5ssBlm2+bD/mywGWbb5sP+bLAZZtvnw/LjwhV+vCoz/sWIEw0o6lP6p14Qm5Wqc/5ssBlm2+rD/OLXHq99yyP2mSQeOfJqk/7FiBMNKOlT9wH8F9BPeRP7ICYaQdK6A/pOhhb1SKrj9wH8F9BPexPyivobyG8ro/h71RKXrYuz8dYNnmywHGPzqL6Syms8g/tsSp33NLzD/4p0kGjX/KP0basQJhpM0/vlEpetgb1T+bLwdYtvniP6UdKxBG2uE/5GpdeEKu1j+fJhk0/mniPzkqRQ97o/I/I7iP4D6C+z+cLwdYtvnyPwKWbb4cYOk/h4iIiIiICEApprOYzmIxQInpLKazGEhATP2eW+JUT0CfW+LU7zlIQFe2+XKAZTxAIiIiIiIiLEAhIiIiIiIaQATCSDtWIBBA6vfcEqd+B0CaLwdYtvkCQOyNStHD3gBAzZcDLNt8AUBb4tTvuSUGQEZwH8F9BAdAhSfkal14AkAKhJF2rEAAQJJ2rEAYafc/iIiIiIiI+D+cxXQW01kQQM2XAyzbfAFAwUg7ViCM5D+0YwXCSDvWP9XvuSVO/c4/yaDxT5MMyj//NMmg8U/DP+XLAZZtvrw/x6DxT5MMuj8JhJF2rEC4Py08IVfrwrM/sQJhpB0roD+xAmGkHSugP28fwX0E96E/rtaFJ+Rq3T+zmM5iOosBQJgDLNt8OfA/oCYZNP5p0j8RERERERGxP3AfwX0E96E/cB/BfQT3kT/sWIEw0o6lP+1YgTDSjpU/sgJhpB0roD/mywGWbb6MP3AfwX0E95E/5ssBlm2+jD/mywGWbb5sP3AfwX0E95E/5ssBlm2+bD/mywGWbb6MP+xYgTDSjoU/apJB458mmT/mywGWbb5sP+bLAZZtvnw/5ssBlm2+bD8AAAAAAAAAAOxYgTDSjoU/5ssBlm2+fD8AAAAAAAAAAObLAZZtvmw/7FiBMNKOhT/mywGWbb5sP+bLAZZtvow/AAAAAAAAAADmywGWbb5sP+bLAZZtvmw/AAAAAAAAAADmywGWbb5sPwAAAAAAAAAAAAAAAAAAAADmywGWbb5sP+bLAZZtvmw/AAAAAAAAAAAAAAAAAAAAAObLAZZtvpw/GDT+aZJB8z8PRtqxAmEMQLECYaQdKxBASQaNf5pkCEA8IVfrwhMKQGI6i+kspgtAv7LNlwMsC0BpxwqEkXYMQG6+HGDZ5gtAAcs2Xw6wBEDwhFytC08AQGQFwkg7VgBAYzqL6Sym8z90FtNZTGfhPzKdxXQW09k/qRQ97I1K0T98bolTv+fGP88tcer33MI/pOhhb1SKrj/lywGWbb68P3AfwX0E97E/jUrRw96otD9pkkHjnyapP6ToYW9Uiq4/LjwhV+vCoz/mywGWbb6MP+bLAZZtvow/5ssBlm2+bD/mywGWbb5sP+bLAZZtvnw/5ssBlm2+jD/mywGWbb5sP+bLAZZtvmw/5ssBlm2+bD/sWIEw0o6FP+xYgTDSjqU/pOhhb1SKrj/PLXHq99yyPxAREREREbE/zy1x6vfcsj/sWIEw0o6lP+xYgTDSjoU/7FiBMNKOlT/sWIEw0o6lPy48IVfrwrM/LjwhV+vCsz/nywGWbb68P0xnMZ3FdMY/LTwhV+vCwz85i+ksprPIPxbTWUxnMc0/apJB458myT+pFD3sjUrRPzqL6Syms9g/ZjGdxXQW4z9AGGnHCoThP3puiVO/59Y/k0HjnyYZ5D8zMzMzMzPzP5zFdBbTWfw/my8HWLb58j87i+ksprPoP6QdKxBG2glAlwMs23w5MkCks5jOYrpIQP5pkkHjn09ApxQ97I3KR0D23BKnfs87QGcxncV0FitAJa+hvIbyGkDze26JU78PQJcDLNt8OQhA77klTv2eA0BAGGnHCoQBQMITcrUuPAFAjkrRw96oBECq33NLnPoFQOiWOPV7bgFAw96oFD3s/T8QRtqxAmH0P6t14Qm5Wvc/d0Ku1oUnEEAVCCPtWIEAQLVjBcJIO+Y/hVytC0/I1T924Qm5WhfOP+1YgTDSjsU/5ssBlm2+vD+HvVEpeti7P2mSQeOfJrk/S2cxncV0tj8nr6G8hvKqP7ECYaQdK6A/7ViBMNKOlT/sWIEw0o6FP8Y/TTJo/OM/2BuVooe9AUD3p0kGjX/qP7ECYaQdK9A/EBERERERsT9wH8F9BPehP+1YgTDSjpU/cB/BfQT3oT9wH8F9BPeRP3AfwX0E95E/5ssBlm2+bD/mywGWbb5sP+bLAZZtvmw/5ssBlm2+bD9wH8F9BPeRP+bLAZZtvnw/7ViBMNKOlT/mywGWbb6MP+xYgTDSjpU/5ssBlm2+fD/mywGWbb58P+bLAZZtvnw/5ssBlm2+bD/mywGWbb58P+xYgTDSjoU/AAAAAAAAAADmywGWbb5sP+xYgTDSjoU/5ssBlm2+bD9wH8F9BPeRPwAAAAAAAAAAAAAAAAAAAADsWIEw0o6FP+bLAZZtvmw/7FiBMNKOpT+xAmGkHSvwPwIs23w5wApACoSRdqxAEEDNlwMs23wJQJY49XtuiQtA8U+TDBr/DECmSQaNf5oMQDDSjhUIIw1ARUREREREDEDwuSVO/Z4DQGMFwkg7VgBA8uUAyzZf/j84KkUPe6PyP0UPe6NS9OA/AJZtvhxg2T94DeU1lNfQPy88IVfrwsM//zTJoPFPwz8tPCFX68KzPxAREREREbE/EBERERERsT/sWIEw0o61P6t14Qm5Wqc/5csBlm2+rD+yAmGkHSugP+bLAZZtvow/5ssBlm2+jD8AAAAAAAAAAObLAZZtvmw/5ssBlm2+bD/mywGWbb6MP+bLAZZtvmw/5ssBlm2+bD8AAAAAAAAAAObLAZZtvmw/AAAAAAAAAAAAAAAAAAAAAObLAZZtvmw/7FiBMNKOhT+yAmGkHSugP6p14Qm5Wqc/jUrRw96otD9pkkHjnyapP6ToYW9Uir4/qnXhCblapz/sWIEw0o6FP+1YgTDSjpU/sQJhpB0roD+xAmGkHSuwP3AfwX0E97E/pOhhb1SKvj9wH8F9BPfBP7xRKXrYG8U/2nw5wLLNxz+k6GFvVIrOP1i2+XKAZcs/FtNZTGcxzT/4p0kGjX/aPyRO/Z5b4uQ/eQ3lNZTX4D9WVVVVVVXVPytFD3ujUuQ/aDGdxXQW8z9ytS48IVf7PwQs23w5wPI/lqKHvVEp6j+wbPPlAMsGQC08IVfrwjFAwEg7ViCMSUBTKXrYGxVQQPinSQaN/0dA3agUPeyNO0BTv+eWOPUpQO/lAMs2XxpATv2eW+LUD0AZ/zTJoPEHQO+5JU79ngNAqRQ97I1KAUCxAmGkHSsAQHw5wLLNlwNA4tTvuSVOBUD7CO4juI8AQOvCE3K1Lvw/EBERERER8T+sQBhpxwr0Pz2C+wjuIxBAPoL7CO4jAEDgc0uc+j3nP/ZGpehhb9Q/q3XhCblaxz+xAmGkHSvAPwmEkXasQLg/S2cxncV0tj/PLXHq99yyP41K0cPeqLQ/sgJhpB0rsD+yAmGkHSugP+bLAZZtvpw/7ViBMNKOlT8cYNnmywHmP3qjUvSwNwJABo1/mmTQ6D+2xKnfc0vMP+xYgTDSjqU/sgJhpB0roD/mywGWbb6MP+bLAZZtvmw/cB/BfQT3kT8AAAAAAAAAAObLAZZtvmw/7FiBMNKOhT/mywGWbb6MP+xYgTDSjpU/5ssBlm2+jD/sWIEw0o6FP+bLAZZtvnw/7FiBMNKOhT/mywGWbb58P+bLAZZtvnw/5ssBlm2+bD8AAAAAAAAAAAAAAAAAAAAA7FiBMNKOhT/mywGWbb5sP3AfwX0E95E/5ssBlm2+bD8AAAAAAAAAAObLAZZtvnw/LjwhV+vCoz+k6GFvVIruP5aih71RKQpAfgT3EdxHEEAmGTT+aZIJQHnYG5Wihw1Afs8tcer3DED43BKnfs8NQGVmZmZmZg5Axanfc0ucCkAELNt8OcACQFCTDBr/NAFAP+OfJhk0/j/8CO4juI/wP+UAyzZfDuA/EnK1Ljwh1z+JvVEpetjLP41K0cPeqMQ/EBERERERwT8vPCFX68KzP88tcer33LI/cB/BfQT3sT8tPCFX68KzP2iSQeOfJqk/EBERERERsT9pkkHjnyaZP3AfwX0E95E/5ssBlm2+jD/mywGWbb58P+bLAZZtvow/7FiBMNKOhT/mywGWbb58P+bLAZZtvmw/AAAAAAAAAAAAAAAAAAAAAObLAZZtvmw/AAAAAAAAAAAAAAAAAAAAAObLAZZtvmw/7FiBMNKOhT9wH8F9BPeRPy48IVfrwqM/jUrRw96otD8uPCFX68KjP4e9USl62Ls/sgJhpB0roD/mywGWbb6MP3AfwX0E95E/5ssBlm2+nD/mywGWbb6sP3AfwX0E97E/pOhhb1SKvj+fJhk0/mnCPy88IVfrwsM/aJJB458myT8nr6G8hvLKP/enSQaNf8o/V7b5coBlyz914Qm5WhfeP+lhb1SKHuY/NP5pkkHj3z8vPCFX68LTP/o9t8Sp3+M/7ViBMNKO9T+Qq3XhCbn6P6QdKxBG2vE/6WFvVIoe5j+0mM5iOosJQDshV+vCEzRA9bA3KkUPS0A9IVfrwhNQQCums5jOYkdAPk0yaPzTOUAzaPzTJIMoQKoLT8jVuhhA33NLnPo9D0AI7iO4j+AGQEel6GFvVAJAkwwa/zTJAEA97I1K0cP+P18OsGzz5QBAsDcqRQ97A0Bx6vfcEqf+PyDBfQT3Efw/OvV7bolT7z+6JU79nlvyPx7BfQT3ERBA6vfcEqd+/z8Oe6NS9LDnP3AfwX0E99E/4Qm5WheewD/sWIEw0o61P41K0cPeqLQ/jUrRw96otD+yAmGkHSuwPy88IVfrwrM/EBERERERsT/mywGWbb6sP+xYgTDSjqU/sQJhpB0roD8Pe6NS9LDnPzMzMzMzMwNAnyYZNP5p4j8V01lMZzHNP3AfwX0E96E/cB/BfQT3oT9wH8F9BPeRP+bLAZZtvmw/5ssBlm2+fD/mywGWbb5sP+bLAZZtvow/5ssBlm2+jD9wH8F9BPeRP+bLAZZtvmw/7FiBMNKOhT/mywGWbb58P+bLAZZtvnw/5ssBlm2+bD/mywGWbb58P+bLAZZtvmw/AAAAAAAAAAAAAAAAAAAAAObLAZZtvnw/5ssBlm2+fD/mywGWbb6MP+bLAZZtvmw/AAAAAAAAAADmywGWbb58P+bLAZZtvmw/LjwhV+vCoz8W01lMZzHtP3AfwX0E9wlA////////D0AhIiIiIiIKQBM97I1K0QtArEAYaccKDEAN5TWU11AOQBRytS48IQ9AfKNS9LA3CkAVPeyNStEDQCEiIiIiIgJAJuRqXXhC/j+yAmGkHSvwP5z6PbfEqd8/CoSRdqxA2D/V77klTv3OP6t14Qm5Wsc/QBhpxwqEwT+HvVEpeti7P88tcer33LI/o+hhb1SKrj+xAmGkHSuwPyevobyG8qo/5ssBlm2+rD9wH8F9BPeRP7ECYaQdK6A/5ssBlm2+fD/mywGWbb58P+bLAZZtvow/5ssBlm2+fD/mywGWbb5sPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAObLAZZtvmw/5ssBlm2+bD8AAAAAAAAAAObLAZZtvmw/7FiBMNKOhT9wH8F9BPehPyivobyG8qo/LjwhV+vCsz8QERERERGxP4e9USl62Ls/KK+hvIbyqj/mywGWbb6cP+bLAZZtvow/bx/BfQT3oT+k6GFvVIquPwqEkXasQLg/4Qm5WheewD/mywGWbb68P01nMZ3FdMY/h71RKXrYyz8KhJF2rEDIP/mnSQaNf8o/5csBlm2+zD+yAmGkHSvgP4Flmy8HWOY/1e+5JU793j9oMZ3FdBbTPy08IVfrwuM/mmTQ+KdJ9j9hpB0rEEb6P4Yn5GpdePI/QYL7CO4j6D+3xKnfc0sMQC08IVfrwjRA6WFvVIoeS0AAyzZfDrBPQA57o1L0MEdAxHQW01lMOUCWbb4cYNkoQMoBlm2+HBhATv2eW+LUD0Ar23w5wLIFQJCrdeEJuQJAcoBlmy8HAEDD3qgUPez9P4oe9kal6AFAPbfEqd9zA0A6i+ksprMAQBDcR3Afwf0/9xHcR3Af8T+GJ+RqXXjyP3Hq99wSpw5AYwXCSDtWAEA+gvsI7iPoP75RKXrYG9U/7liBMNKOxT8D9xHcR3C/PwP3EdxHcL8/S2cxncV0tj8uPCFX68KzP4e9USl62Ls/Jq+hvIbyuj9MZzGdxXS2P28fwX0E97E/sQJhpB0rsD8cYNnmywHmP1ytC0/I1QJAWExnMZ3F5D+yAmGkHSvQPyevobyG8qo/pOhhb1SKrj+yAmGkHSugP+bLAZZtvow/5ssBlm2+jD/mywGWbb58P+bLAZZtvmw/5ssBlm2+bD/mywGWbb6MP+bLAZZtvow/aZJB458mmT/sWIEw0o6FP+bLAZZtvnw/5ssBlm2+fD/mywGWbb6MP+bLAZZtvmw/5ssBlm2+fD8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADmywGWbb5sP+xYgTDSjoU/5ssBlm2+jD/sWIEw0o6FP+bLAZZtvmw/AAAAAAAAAAAAAAAAAAAAAObLAZZtvnw/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAwAFAASAAwACAAEAAwAAAAQAAAALAAAADgAAAAAAAQAAQAAAAgDAAAAAAAAUAEAAAAAAAAoeAAAAAAAAAAAAAAAAAAAAAAKAAwAAAAIAAQACgAAAAgAAACQAAAAAwAAAEwAAAAoAAAABAAAAJz9//8IAAAADAAAAAAAAAAAAAAABQAAAHJlZklkAAAAvP3//wgAAAAMAAAAAAAAAAAAAAAEAAAAbmFtZQAAAADc/f//CAAAACgAAAAfAAAAeyJ0eXBlIjoiaGVhdG1hcC1jZWxscy1zcGFyc2UifQAEAAAAbWV0YQAAAAAFAAAAxAEAADABAADQAAAAcAAAAAQAAABi/v//FAAAADwAAABEAAAAAAAAAkgAAAABAAAABAAAAFD+//8IAAAAEAAAAAcAAAB5TGF5b3V0AAQAAABuYW1lAAAAAAAAAAAIAAwACAAHAAgAAAAAAAABCAAAAAcAAAB5TGF5b3V0AMr+//8UAAAAPAAAADwAAAAAAAADPAAAAAEAAAAEAAAAuP7//wgAAAAQAAAABQAAAGNvdW50AAAABAAAAG5hbWUAAAAAAAAAAK7+//8AAAIABQAAAGNvdW50AAAAJv///xQAAAA8AAAAPAAAAAAAAAM8AAAAAQAAAAQAAAAU////CAAAABAAAAAEAAAAeU1heAAAAAAEAAAAbmFtZQAAAAAAAAAACv///wAAAgAEAAAAeU1heAAAAACC////FAAAAGAAAABgAAAAAAAAA2AAAAACAAAALAAAAAQAAAB0////CAAAABAAAAAEAAAAeU1pbgAAAAAEAAAAbmFtZQAAAACY////CAAAAAwAAAACAAAAe30AAAYAAABsYWJlbHMAAAAAAACK////AAACAAQAAAB5TWluAAASABgAFAAAABMADAAAAAgABAASAAAAFAAAAEQAAABMAAAAAAAACkwAAAABAAAADAAAAAgADAAIAAQACAAAAAgAAAAQAAAABAAAAHhNYXgAAAAABAAAAG5hbWUAAAAAAAAAAAAABgAIAAYABgAAAAAAAwAEAAAAeE1heAAAAAAgAwAAQVJST1cx diff --git a/pkg/util/converter/testdata/prom-matrix-histogram-partitioned-wide-frame.json b/pkg/util/converter/testdata/prom-matrix-histogram-partitioned-wide-frame.json new file mode 100644 index 00000000000..a5f87e8d990 --- /dev/null +++ b/pkg/util/converter/testdata/prom-matrix-histogram-partitioned-wide-frame.json @@ -0,0 +1,1636 @@ +{ + "frames": [ + { + "schema": { + "meta": { + "type": "heatmap-cells-sparse" + }, + "fields": [ + { + "name": "xMax", + "type": "time", + "typeInfo": { + "frame": "time.Time" + } + }, + { + "name": "yMin", + "type": "number", + "typeInfo": { + "frame": "float64" + }, + "labels": { + "cluster": "dev-us-central-0", + "job": "cortex-dev-01/cortex-gw", + "route": "api_prom_api_v1_cardinality_label_names" + } + }, + { + "name": "yMax", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "count", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "yLayout", + "type": "number", + "typeInfo": { + "frame": "int8" + } + } + ] + }, + "data": { + "values": [ + [ + + ], + [ + + ], + [ + + ], + [ + + ], + [ + + ] + ] + } + }, + { + "schema": { + "meta": { + "type": "heatmap-cells-sparse" + }, + "fields": [ + { + "name": "xMax", + "type": "time", + "typeInfo": { + "frame": "time.Time" + } + }, + { + "name": "yMin", + "type": "number", + "typeInfo": { + "frame": "float64" + }, + "labels": { + "cluster": "dev-us-central-0", + "job": "cortex-dev-01/cortex-gw", + "route": "api_prom_api_v1_cardinality_label_values" + } + }, + { + "name": "yMax", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "count", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "yLayout", + "type": "number", + "typeInfo": { + "frame": "int8" + } + } + ] + }, + "data": { + "values": [ + [ + + ], + [ + + ], + [ + + ], + [ + + ], + [ + + ] + ] + } + }, + { + "schema": { + "meta": { + "type": "heatmap-cells-sparse" + }, + "fields": [ + { + "name": "xMax", + "type": "time", + "typeInfo": { + "frame": "time.Time" + } + }, + { + "name": "yMin", + "type": "number", + "typeInfo": { + "frame": "float64" + }, + "labels": { + "cluster": "dev-us-central-0", + "job": "cortex-dev-01/cortex-gw", + "route": "api_prom_api_v1_label_name_values" + } + }, + { + "name": "yMax", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "count", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "yLayout", + "type": "number", + "typeInfo": { + "frame": "int8" + } + } + ] + }, + "data": { + "values": [ + [ + + ], + [ + + ], + [ + + ], + [ + + ], + [ + + ] + ] + } + }, + { + "schema": { + "meta": { + "type": "heatmap-cells-sparse" + }, + "fields": [ + { + "name": "xMax", + "type": "time", + "typeInfo": { + "frame": "time.Time" + } + }, + { + "name": "yMin", + "type": "number", + "typeInfo": { + "frame": "float64" + }, + "labels": { + "cluster": "dev-us-central-0", + "job": "cortex-dev-01/cortex-gw", + "route": "api_prom_api_v1_labels" + } + }, + { + "name": "yMax", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "count", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "yLayout", + "type": "number", + "typeInfo": { + "frame": "int8" + } + } + ] + }, + "data": { + "values": [ + [ + + ], + [ + + ], + [ + + ], + [ + + ], + [ + + ] + ] + } + }, + { + "schema": { + "meta": { + "type": "heatmap-cells-sparse" + }, + "fields": [ + { + "name": "xMax", + "type": "time", + "typeInfo": { + "frame": "time.Time" + } + }, + { + "name": "yMin", + "type": "number", + "typeInfo": { + "frame": "float64" + }, + "labels": { + "cluster": "dev-us-central-0", + "job": "cortex-dev-01/cortex-gw", + "route": "api_prom_api_v1_metadata" + } + }, + { + "name": "yMax", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "count", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "yLayout", + "type": "number", + "typeInfo": { + "frame": "int8" + } + } + ] + }, + "data": { + "values": [ + [ + + ], + [ + + ], + [ + + ], + [ + + ], + [ + + ] + ] + } + }, + { + "schema": { + "meta": { + "type": "heatmap-cells-sparse" + }, + "fields": [ + { + "name": "xMax", + "type": "time", + "typeInfo": { + "frame": "time.Time" + } + }, + { + "name": "yMin", + "type": "number", + "typeInfo": { + "frame": "float64" + }, + "labels": { + "cluster": "dev-us-central-0", + "job": "cortex-dev-01/cortex-gw", + "route": "api_prom_api_v1_query" + } + }, + { + "name": "yMax", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "count", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "yLayout", + "type": "number", + "typeInfo": { + "frame": "int8" + } + } + ] + }, + "data": { + "values": [ + [ + + ], + [ + + ], + [ + + ], + [ + + ], + [ + + ] + ] + } + }, + { + "schema": { + "meta": { + "type": "heatmap-cells-sparse" + }, + "fields": [ + { + "name": "xMax", + "type": "time", + "typeInfo": { + "frame": "time.Time" + } + }, + { + "name": "yMin", + "type": "number", + "typeInfo": { + "frame": "float64" + }, + "labels": { + "cluster": "dev-us-central-0", + "job": "cortex-dev-01/cortex-gw", + "route": "api_prom_api_v1_query_exemplars" + } + }, + { + "name": "yMax", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "count", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "yLayout", + "type": "number", + "typeInfo": { + "frame": "int8" + } + } + ] + }, + "data": { + "values": [ + [ + + ], + [ + + ], + [ + + ], + [ + + ], + [ + + ] + ] + } + }, + { + "schema": { + "meta": { + "type": "heatmap-cells-sparse" + }, + "fields": [ + { + "name": "xMax", + "type": "time", + "typeInfo": { + "frame": "time.Time" + } + }, + { + "name": "yMin", + "type": "number", + "typeInfo": { + "frame": "float64" + }, + "labels": { + "cluster": "dev-us-central-0", + "job": "cortex-dev-01/cortex-gw", + "route": "api_prom_api_v1_query_range" + } + }, + { + "name": "yMax", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "count", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "yLayout", + "type": "number", + "typeInfo": { + "frame": "int8" + } + } + ] + }, + "data": { + "values": [ + [ + + ], + [ + + ], + [ + + ], + [ + + ], + [ + + ] + ] + } + }, + { + "schema": { + "meta": { + "type": "heatmap-cells-sparse" + }, + "fields": [ + { + "name": "xMax", + "type": "time", + "typeInfo": { + "frame": "time.Time" + } + }, + { + "name": "yMin", + "type": "number", + "typeInfo": { + "frame": "float64" + }, + "labels": { + "cluster": "dev-us-central-0", + "job": "cortex-dev-01/cortex-gw", + "route": "api_prom_api_v1_rules" + } + }, + { + "name": "yMax", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "count", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "yLayout", + "type": "number", + "typeInfo": { + "frame": "int8" + } + } + ] + }, + "data": { + "values": [ + [ + 1649963300000 + ], + [ + 0.05255602595335715 + ], + [ + 0.057312752700291944 + ], + [ + 0.003508784241348215 + ], + [ + 0 + ] + ] + } + }, + { + "schema": { + "meta": { + "type": "heatmap-cells-sparse" + }, + "fields": [ + { + "name": "xMax", + "type": "time", + "typeInfo": { + "frame": "time.Time" + } + }, + { + "name": "yMin", + "type": "number", + "typeInfo": { + "frame": "float64" + }, + "labels": { + "cluster": "dev-us-central-0", + "job": "cortex-dev-01/cortex-gw", + "route": "api_prom_api_v1_series" + } + }, + { + "name": "yMax", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "count", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "yLayout", + "type": "number", + "typeInfo": { + "frame": "int8" + } + } + ] + }, + "data": { + "values": [ + [ + + ], + [ + + ], + [ + + ], + [ + + ], + [ + + ] + ] + } + }, + { + "schema": { + "meta": { + "type": "heatmap-cells-sparse" + }, + "fields": [ + { + "name": "xMax", + "type": "time", + "typeInfo": { + "frame": "time.Time" + } + }, + { + "name": "yMin", + "type": "number", + "typeInfo": { + "frame": "float64" + }, + "labels": { + "cluster": "dev-us-central-0", + "job": "cortex-dev-01/cortex-gw", + "route": "api_prom_push" + } + }, + { + "name": "yMax", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "count", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "yLayout", + "type": "number", + "typeInfo": { + "frame": "int8" + } + } + ] + }, + "data": { + "values": [ + [ + 1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000 + ], + [ + 0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.020263118041422026,0.022097086912079608,0.024097044146999074,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.1051120519067143,0.11462550540058389,0.125,0.1363134665831572,0.14865088937534013,0.1621049443313762,0.17677669529663687,0.1927763531759926,0.2102241038134286,0.22925101080116778,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.020263118041422026,0.022097086912079608,0.024097044146999074,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.1051120519067143,0.11462550540058389,0.125,0.1363134665831572,0.14865088937534013,0.1621049443313762,0.17677669529663687,0.1927763531759926,0.2102241038134286,0.22925101080116778,0.2726269331663144,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.020263118041422026,0.022097086912079608,0.024097044146999074,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.1051120519067143,0.11462550540058389,0.125,0.1363134665831572,0.14865088937534013,0.1621049443313762,0.17677669529663687,0.1927763531759926,0.2102241038134286,0.22925101080116778,0.25,0.2726269331663144,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.020263118041422026,0.022097086912079608,0.024097044146999074,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.1051120519067143,0.11462550540058389,0.125,0.1363134665831572,0.14865088937534013,0.1621049443313762,0.17677669529663687,0.1927763531759926,0.2102241038134286,0.22925101080116778,0.25,0.2726269331663144,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.020263118041422026,0.022097086912079608,0.024097044146999074,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.1051120519067143,0.11462550540058389,0.125,0.1363134665831572,0.14865088937534013,0.1621049443313762,0.17677669529663687,0.1927763531759926,0.2102241038134286,0.22925101080116778,0.25,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.020263118041422026,0.022097086912079608,0.024097044146999074,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.1051120519067143,0.11462550540058389,0.125,0.1363134665831572,0.14865088937534013,0.1621049443313762,0.17677669529663687,0.1927763531759926,0.2102241038134286,0.22925101080116778,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.020263118041422026,0.022097086912079608,0.024097044146999074,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.1051120519067143,0.11462550540058389,0.125,0.1363134665831572,0.14865088937534013,0.1621049443313762,0.17677669529663687,0.1927763531759926,0.2102241038134286,0.22925101080116778,0.25 + ], + [ + 0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.020263118041422026,0.022097086912079608,0.024097044146999074,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.1051120519067143,0.11462550540058389,0.125,0.1363134665831572,0.14865088937534013,0.1621049443313762,0.17677669529663687,0.1927763531759926,0.2102241038134286,0.22925101080116778,0.25,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.020263118041422026,0.022097086912079608,0.024097044146999074,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.1051120519067143,0.11462550540058389,0.125,0.1363134665831572,0.14865088937534013,0.1621049443313762,0.17677669529663687,0.1927763531759926,0.2102241038134286,0.22925101080116778,0.25,0.29730177875068026,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.020263118041422026,0.022097086912079608,0.024097044146999074,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.1051120519067143,0.11462550540058389,0.125,0.1363134665831572,0.14865088937534013,0.1621049443313762,0.17677669529663687,0.1927763531759926,0.2102241038134286,0.22925101080116778,0.25,0.2726269331663144,0.29730177875068026,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.020263118041422026,0.022097086912079608,0.024097044146999074,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.1051120519067143,0.11462550540058389,0.125,0.1363134665831572,0.14865088937534013,0.1621049443313762,0.17677669529663687,0.1927763531759926,0.2102241038134286,0.22925101080116778,0.25,0.2726269331663144,0.29730177875068026,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.020263118041422026,0.022097086912079608,0.024097044146999074,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.1051120519067143,0.11462550540058389,0.125,0.1363134665831572,0.14865088937534013,0.1621049443313762,0.17677669529663687,0.1927763531759926,0.2102241038134286,0.22925101080116778,0.25,0.2726269331663144,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.020263118041422026,0.022097086912079608,0.024097044146999074,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.1051120519067143,0.11462550540058389,0.125,0.1363134665831572,0.14865088937534013,0.1621049443313762,0.17677669529663687,0.1927763531759926,0.2102241038134286,0.22925101080116778,0.25,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.020263118041422026,0.022097086912079608,0.024097044146999074,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.1051120519067143,0.11462550540058389,0.125,0.1363134665831572,0.14865088937534013,0.1621049443313762,0.17677669529663687,0.1927763531759926,0.2102241038134286,0.22925101080116778,0.25,0.2726269331663144 + ], + [ + 0.0035087596183873042,0.02105265620208107,0.03508778085595028,0.09473695290949442,0.11228089873902361,0.16491241612920574,0.12982470914248379,0.16842120037107233,0.30175469375429953,0.6210531486658782,0.5543864819986932,0.3052634903069123,0.515790126197556,1.0736853924377703,1.2877209356835302,0.9719308956675901,0.5789482794757901,3.0210559187709687,18.26668860587992,51.077253863151675,61.98954755360188,47.68075750115402,27.494770071012404,13.098261077362105,5.97895454606267,3.7087762019373525,2.701757574660338,2.3473712773355366,2.24561686674654,2.2736873869065892,2.7333362634891816,2.7508801108252254,2.1052651893066803,2.0280725023252932,1.3964928408858217,1.7368443705904222,4.466671308131474,2.21052854418545,0.6596499599931314,0.3438599569127127,0.2982458602670295,0.19649143736685512,0.10175444752313532,0.07368429670732696,0.06666666666701224,0.10175449676905715,0.07368429670715415,0.0807018282555388,0.07017548784310423,0.031578971991641155,0.3614038288738775,2.0140375746551973,1.2421067405461763,0.3403513204089571,0.10526329332192902,0.024561465066390203,0.02456148968943751,0,0.0070175684826964315,0.00701754385973552,0.003474313725490196,0.014128571895424836,0.035295675653594774,0.07389402859477125,0.1450737933006536,0.11763832107843136,0.10248531699346405,0.1519302246732026,0.24471693055555555,0.5208259534313725,0.47118913725490197,0.28745537826797385,0.381324318627451,0.9279072933006536,1.252551309640523,0.8046421576797387,0.5407502385620916,2.6045680073529414,15.67413830637255,43.484638324346406,54.75321970179739,42.28362505555556,24.223681089052285,12.0806885375817,5.377672486111112,3.2884932638888893,2.3908151789215686,1.9715330065359475,1.8288977050653594,1.9376074060457515,2.3304484836601307,2.5128566307189537,2.0683444281045755,1.8836300686274512,1.4021572173202614,1.5009301797385621,3.71229766503268,1.907167003267974,0.5214704272875816,0.2656605931372549,0.20896712663398695,0.16599949836601308,0.11299878758169936,0.06005811846405229,0.05688934150326797,0.07050114624183007,0.057139156862745094,0.038834071895424836,0.028003199346405227,0.02827821160130719,0.37523963725490195,1.8745612704248364,0.9314658897058823,0.2837388668300654,0.07057970751633988,0.02101025163398693,0.013982104575163402,0.014208091503267973,0.0035051111111111116,0.006941084967320262,0.0036387083333333336,0.003508771929824561,0.010526315789473682,0.042105263157894736,0.08070175438596491,0.13333333333333333,0.14035087719298245,0.12982456140350876,0.1894736842105263,0.2771929824561403,0.5508771929824561,0.5017543859649123,0.31228070175438594,0.42807017543859643,1.0210526315789474,1.4350877192982454,0.9368421052631578,0.6280701754385963,2.898245614035087,17.252631578947366,48.14035087719298,62.65614035087718,48.435087719298245,28.357894736842105,14.045614035087718,6.522807017543859,4.028070175438596,2.933333333333333,2.371929824561403,2.1087719298245613,2.1789473684210523,2.7684210526315787,2.8771929824561395,2.308771929824561,2.0245614035087716,1.4421052631578948,1.5298245614035086,4.07719298245614,2.1754385964912277,0.6421052631578946,0.33684210526315783,0.23157894736842102,0.19298245614035084,0.15087719298245614,0.11228070175438594,0.08771929824561402,0.09122807017543857,0.06666666666666665,0.02807017543859649,0.024561403508771926,0.02807017543859649,0.45964912280701753,2.1929824561403506,1.0140350877192983,0.28421052631578947,0.06315789473684211,0.031578947368421054,0.014035087719298244,0.014035087719298244,0.007017543859649122,0.007017543859649122,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.014035087719298244,0.06666666666666665,0.07368421052631577,0.1263157894736842,0.15789473684210525,0.12280701754385963,0.22807017543859648,0.32631578947368417,0.5438596491228069,0.48070175438596485,0.30877192982456136,0.4666666666666666,1.0210526315789472,1.4526315789473683,0.894736842105263,0.5824561403508772,3.0350877192982453,18.059649122807016,49.40350877192982,63.214035087719296,47.56140350877192,27.782456140350874,13.512280701754385,6.715789473684209,3.9649122807017534,3.021052631578947,2.4421052631578943,2.164912280701754,2.1508771929824557,2.5719298245614035,2.729824561403509,2.1719298245614036,1.8526315789473682,1.2596491228070175,1.4491228070175437,4.024561403508772,2.052631578947368,0.6842105263157895,0.32982456140350874,0.22807017543859648,0.16491228070175437,0.11228070175438595,0.1087719298245614,0.09473684210526315,0.08421052631578946,0.04210526315789473,0.03157894736842105,0.010526315789473682,0.007017543859649122,0.6245614035087719,2.2175438596491226,0.8280701754385963,0.2526315789473684,0.06666666666666665,0.03508771929824561,0.017543859649122806,0.017543859649122806,0.010526315789473682,0,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.014035087719298244,0.05964912280701754,0.07017543859649122,0.11929824561403507,0.14736842105263157,0.15087719298245614,0.18245614035087718,0.36842105263157887,0.5859649122807016,0.45964912280701753,0.2596491228070175,0.49122807017543857,0.982456140350877,1.4596491228070174,0.870175438596491,0.575438596491228,2.666666666666666,17.652631578947368,51.031578947368416,64.27368421052631,47.9578947368421,27.529824561403505,12.943859649122805,6.564912280701753,3.9719298245614034,2.9859649122807013,2.4385964912280698,2.136842105263158,2.0175438596491224,2.435087719298245,2.6421052631578945,2.063157894736842,1.7473684210526315,1.0561403508771927,1.23859649122807,4.0210526315789465,2.0105263157894733,0.712280701754386,0.30877192982456136,0.17543859649122803,0.1263157894736842,0.09122807017543857,0.08421052631578946,0.07368421052631578,0.07719298245614034,0.04912280701754386,0.031578947368421054,0.024561403508771926,0.017543859649122806,0.687719298245614,2.27719298245614,0.775438596491228,0.22105263157894733,0.04210526315789473,0.031578947368421054,0.014035087719298244,0.003508771929824561,0.017543859649122806,0,0.003508771929824561,0.024561403508771926,0.059649122807017535,0.08070175438596491,0.14035087719298242,0.1333333333333333,0.1333333333333333,0.16842105263157892,0.4210526315789473,0.6280701754385964,0.44561403508771924,0.24561403508771928,0.5087719298245613,1.1122807017543859,1.4280701754385963,0.870175438596491,0.4596491228070174,3.052631578947368,20.00350877192982,54.08070175438597,64.27368421052631,46.73333333333333,25.81052631578947,12.221052631578948,6.150877192982456,3.894736842105263,2.8491228070175434,2.2736842105263158,2.0736842105263156,1.919298245614035,2.0982456140350876,2.4140350877192978,1.9052631578947368,1.7403508771929825,0.9684210526315791,1.1298245614035087,4.007017543859648,1.9649122807017543,0.7333333333333332,0.2771929824561403,0.12982456140350876,0.0807017543859649,0.07719298245614034,0.07719298245614034,0.06315789473684211,0.07719298245614035,0.05263157894736842,0.05614035087719298,0.03859649122807017,0.02807017543859649,0.7403508771929824,2.4,0.575438596491228,0.22807017543859645,0.03508771929824561,0.03508771929824561,0.017543859649122806,0.003508771929824561,0.007017543859649122,0.003508771929824561,0.007017543859649122,0.024561403508771926,0.05263157894736842,0.08421052631578949,0.1508771929824561,0.1263157894736842,0.13684210526315788,0.17543859649122803,0.4631578947368421,0.6245614035087719,0.431578947368421,0.22807017543859648,0.49122807017543857,1.1087719298245613,1.375438596491228,0.9052631578947368,0.487719298245614,3.371929824561403,20.68070175438596,54.192982456140356,63.329824561403505,46.35087719298245,25.280701754385962,12.382456140350877,6.003508771929824,3.9403508771929823,2.701754385964912,2.326315789473684,2.003508771929824,1.8666666666666665,2.2245614035087717,2.410526315789473,2.070175438596491,1.8491228070175434,1.056140350877193,1.119298245614035,3.8210526315789473,2.0350877192982453,0.7473684210526315,0.32280701754385965,0.1649122807017544,0.11929824561403507,0.11228070175438595,0.0807017543859649,0.07719298245614034,0.1087719298245614,0.09473684210526313,0.08070175438596491,0.07017543859649121,0.05614035087719298,0.687719298245614,2.3473684210526313,0.6456140350877191,0.23859649122807017,0.045614035087719294,0.03859649122807017,0.021052631578947368,0.010526315789473682,0.014035087719298244,0.003508771929824561,0.003508771929824561 + ], + [ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ] + ] + } + }, + { + "schema": { + "meta": { + "type": "heatmap-cells-sparse" + }, + "fields": [ + { + "name": "xMax", + "type": "time", + "typeInfo": { + "frame": "time.Time" + } + }, + { + "name": "yMin", + "type": "number", + "typeInfo": { + "frame": "float64" + }, + "labels": { + "cluster": "dev-us-central-0", + "job": "cortex-dev-01/cortex-gw", + "route": "api_prom_rules" + } + }, + { + "name": "yMax", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "count", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "yLayout", + "type": "number", + "typeInfo": { + "frame": "int8" + } + } + ] + }, + "data": { + "values": [ + [ + 1649963300000 + ], + [ + 1 + ], + [ + 1.0905077326652577 + ], + [ + 0.0035087596183873042 + ], + [ + 0 + ] + ] + } + }, + { + "schema": { + "meta": { + "type": "heatmap-cells-sparse" + }, + "fields": [ + { + "name": "xMax", + "type": "time", + "typeInfo": { + "frame": "time.Time" + } + }, + { + "name": "yMin", + "type": "number", + "typeInfo": { + "frame": "float64" + }, + "labels": { + "cluster": "dev-us-central-0", + "job": "cortex-dev-01/cortex-gw", + "route": "api_v1_rules" + } + }, + { + "name": "yMax", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "count", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "yLayout", + "type": "number", + "typeInfo": { + "frame": "int8" + } + } + ] + }, + "data": { + "values": [ + [ + 1649963400000,1649963400000,1649963500000,1649963500000,1649963600000,1649963600000 + ], + [ + 0.8408964152537144,1,0.8408964152537144,1,0.8408964152537144,1 + ], + [ + 0.9170040432046711,1.0905077326652577,0.9170040432046711,1.0905077326652577,0.9170040432046711,1.0905077326652577 + ], + [ + 0.003466771241830066,0.003474313725490196,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.003508771929824561 + ], + [ + 0,0,0,0,0,0 + ] + ] + } + }, + { + "schema": { + "meta": { + "type": "heatmap-cells-sparse" + }, + "fields": [ + { + "name": "xMax", + "type": "time", + "typeInfo": { + "frame": "time.Time" + } + }, + { + "name": "yMin", + "type": "number", + "typeInfo": { + "frame": "float64" + }, + "labels": { + "cluster": "dev-us-central-0", + "job": "cortex-dev-01/cortex-gw", + "route": "root" + } + }, + { + "name": "yMax", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "count", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "yLayout", + "type": "number", + "typeInfo": { + "frame": "int8" + } + } + ] + }, + "data": { + "values": [ + [ + 1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000 + ], + [ + 0.000004536465129862675,0.000004947050303081549,0.000005394796609394436,0.000005883067418700946,0.000006415530511884418,0.0000069961856323598564,0.00000762939453125,0.000008319913731882154,0.00000907293025972535,0.000009894100606163098,0.000010789593218788871,0.000011766134837401892,0.000012831061023768835,0.000013992371264719713,0.0000152587890625,0.000016639827463764308,0.0000181458605194507,0.000019788201212326197,0.000021579186437577742,0.000023532269674803783,0.00002566212204753767,0.000027984742529439426,0.000030517578125,0.000033279654927528616,0.0000362917210389014,0.000039576402424652394,0.000043158372875155485,0.00004706453934960757,0.00005132424409507534,0.00005596948505887885,0.00006103515625,0.00006655930985505723,0.0000725834420778028,0.00007915280484930479,0.00008631674575031097,0.0000034980928161799282,0.000003814697265625,0.000004159956865941077,0.000004536465129862675,0.000004947050303081549,0.000005394796609394436,0.000005883067418700946,0.000006415530511884418,0.0000069961856323598564,0.00000762939453125,0.000008319913731882154,0.00000907293025972535,0.000009894100606163098,0.000010789593218788871,0.000011766134837401892,0.000012831061023768835,0.000013992371264719713,0.0000152587890625,0.000016639827463764308,0.0000181458605194507,0.000019788201212326197,0.000021579186437577742,0.000023532269674803783,0.00002566212204753767,0.000027984742529439426,0.000030517578125,0.000033279654927528616,0.0000362917210389014,0.000039576402424652394,0.000043158372875155485,0.00004706453934960757,0.00005132424409507534,0.00005596948505887885,0.00006103515625,0.00006655930985505723,0.0000725834420778028,0.00007915280484930479,0.00008631674575031097,0.00017263349150062194,0.0000034980928161799282,0.000003814697265625,0.000004159956865941077,0.000004536465129862675,0.000004947050303081549,0.000005394796609394436,0.000005883067418700946,0.000006415530511884418,0.0000069961856323598564,0.00000762939453125,0.000008319913731882154,0.00000907293025972535,0.000009894100606163098,0.000010789593218788871,0.000011766134837401892,0.000012831061023768835,0.000013992371264719713,0.0000152587890625,0.000016639827463764308,0.0000181458605194507,0.000019788201212326197,0.000021579186437577742,0.000023532269674803783,0.00002566212204753767,0.000027984742529439426,0.000030517578125,0.000033279654927528616,0.0000362917210389014,0.000039576402424652394,0.000043158372875155485,0.00004706453934960757,0.00005132424409507534,0.00005596948505887885,0.00006103515625,0.00006655930985505723,0.0000725834420778028,0.00007915280484930479,0.00008631674575031097,0.00017263349150062194,0.0000034980928161799282,0.000003814697265625,0.000004159956865941077,0.000004536465129862675,0.000004947050303081549,0.000005394796609394436,0.000005883067418700946,0.000006415530511884418,0.0000069961856323598564,0.00000762939453125,0.000008319913731882154,0.00000907293025972535,0.000009894100606163098,0.000010789593218788871,0.000011766134837401892,0.000012831061023768835,0.000013992371264719713,0.0000152587890625,0.000016639827463764308,0.0000181458605194507,0.000019788201212326197,0.000021579186437577742,0.000023532269674803783,0.00002566212204753767,0.000027984742529439426,0.000030517578125,0.000033279654927528616,0.0000362917210389014,0.000039576402424652394,0.000043158372875155485,0.00004706453934960757,0.00005132424409507534,0.00005596948505887885,0.00006103515625,0.00006655930985505723,0.0000725834420778028,0.00007915280484930479,0.00017263349150062194,0.000004536465129862675,0.000004947050303081549,0.000005394796609394436,0.000005883067418700946,0.000006415530511884418,0.0000069961856323598564,0.00000762939453125,0.000008319913731882154,0.00000907293025972535,0.000009894100606163098,0.000010789593218788871,0.000011766134837401892,0.000012831061023768835,0.000013992371264719713,0.0000152587890625,0.000016639827463764308,0.0000181458605194507,0.000019788201212326197,0.000021579186437577742,0.000023532269674803783,0.00002566212204753767,0.000027984742529439426,0.000030517578125,0.000033279654927528616,0.0000362917210389014,0.000039576402424652394,0.000043158372875155485,0.00004706453934960757,0.00005132424409507534,0.00005596948505887885,0.00006103515625,0.00006655930985505723,0.0000725834420778028,0.00007915280484930479,0.00008631674575031097,0.00009412907869921513,0.00010264848819015068,0.0001119389701177577,0.0001220703125,0.000004536465129862675,0.000004947050303081549,0.000005394796609394436,0.000005883067418700946,0.000006415530511884418,0.0000069961856323598564,0.00000762939453125,0.000008319913731882154,0.00000907293025972535,0.000009894100606163098,0.000010789593218788871,0.000011766134837401892,0.000012831061023768835,0.000013992371264719713,0.0000152587890625,0.000016639827463764308,0.0000181458605194507,0.000019788201212326197,0.000021579186437577742,0.000023532269674803783,0.00002566212204753767,0.000027984742529439426,0.000030517578125,0.000033279654927528616,0.0000362917210389014,0.000039576402424652394,0.000043158372875155485,0.00004706453934960757,0.00005132424409507534,0.00005596948505887885,0.00006103515625,0.00006655930985505723,0.0000725834420778028,0.00007915280484930479,0.00008631674575031097,0.00009412907869921513,0.00010264848819015068,0.0001119389701177577,0.0001220703125,0.000004159956865941077,0.000004536465129862675,0.000004947050303081549,0.000005394796609394436,0.000005883067418700946,0.000006415530511884418,0.0000069961856323598564,0.00000762939453125,0.000008319913731882154,0.00000907293025972535,0.000009894100606163098,0.000010789593218788871,0.000011766134837401892,0.000012831061023768835,0.000013992371264719713,0.0000152587890625,0.000016639827463764308,0.0000181458605194507,0.000019788201212326197,0.000021579186437577742,0.000023532269674803783,0.00002566212204753767,0.000027984742529439426,0.000030517578125,0.000033279654927528616,0.0000362917210389014,0.000039576402424652394,0.000043158372875155485,0.00004706453934960757,0.00005132424409507534,0.00005596948505887885,0.00006103515625,0.00006655930985505723,0.0000725834420778028,0.00007915280484930479,0.00008631674575031097,0.00009412907869921513,0.00010264848819015068,0.0001119389701177577,0.0001220703125 + ], + [ + 0.000004947050303081549,0.000005394796609394436,0.000005883067418700946,0.000006415530511884418,0.0000069961856323598564,0.00000762939453125,0.000008319913731882154,0.00000907293025972535,0.000009894100606163098,0.000010789593218788871,0.000011766134837401892,0.000012831061023768835,0.000013992371264719713,0.0000152587890625,0.000016639827463764308,0.0000181458605194507,0.000019788201212326197,0.000021579186437577742,0.000023532269674803783,0.00002566212204753767,0.000027984742529439426,0.000030517578125,0.000033279654927528616,0.0000362917210389014,0.000039576402424652394,0.000043158372875155485,0.00004706453934960757,0.00005132424409507534,0.00005596948505887885,0.00006103515625,0.00006655930985505723,0.0000725834420778028,0.00007915280484930479,0.00008631674575031097,0.00009412907869921513,0.000003814697265625,0.000004159956865941077,0.000004536465129862675,0.000004947050303081549,0.000005394796609394436,0.000005883067418700946,0.000006415530511884418,0.0000069961856323598564,0.00000762939453125,0.000008319913731882154,0.00000907293025972535,0.000009894100606163098,0.000010789593218788871,0.000011766134837401892,0.000012831061023768835,0.000013992371264719713,0.0000152587890625,0.000016639827463764308,0.0000181458605194507,0.000019788201212326197,0.000021579186437577742,0.000023532269674803783,0.00002566212204753767,0.000027984742529439426,0.000030517578125,0.000033279654927528616,0.0000362917210389014,0.000039576402424652394,0.000043158372875155485,0.00004706453934960757,0.00005132424409507534,0.00005596948505887885,0.00006103515625,0.00006655930985505723,0.0000725834420778028,0.00007915280484930479,0.00008631674575031097,0.00009412907869921513,0.00018825815739843027,0.000003814697265625,0.000004159956865941077,0.000004536465129862675,0.000004947050303081549,0.000005394796609394436,0.000005883067418700946,0.000006415530511884418,0.0000069961856323598564,0.00000762939453125,0.000008319913731882154,0.00000907293025972535,0.000009894100606163098,0.000010789593218788871,0.000011766134837401892,0.000012831061023768835,0.000013992371264719713,0.0000152587890625,0.000016639827463764308,0.0000181458605194507,0.000019788201212326197,0.000021579186437577742,0.000023532269674803783,0.00002566212204753767,0.000027984742529439426,0.000030517578125,0.000033279654927528616,0.0000362917210389014,0.000039576402424652394,0.000043158372875155485,0.00004706453934960757,0.00005132424409507534,0.00005596948505887885,0.00006103515625,0.00006655930985505723,0.0000725834420778028,0.00007915280484930479,0.00008631674575031097,0.00009412907869921513,0.00018825815739843027,0.000003814697265625,0.000004159956865941077,0.000004536465129862675,0.000004947050303081549,0.000005394796609394436,0.000005883067418700946,0.000006415530511884418,0.0000069961856323598564,0.00000762939453125,0.000008319913731882154,0.00000907293025972535,0.000009894100606163098,0.000010789593218788871,0.000011766134837401892,0.000012831061023768835,0.000013992371264719713,0.0000152587890625,0.000016639827463764308,0.0000181458605194507,0.000019788201212326197,0.000021579186437577742,0.000023532269674803783,0.00002566212204753767,0.000027984742529439426,0.000030517578125,0.000033279654927528616,0.0000362917210389014,0.000039576402424652394,0.000043158372875155485,0.00004706453934960757,0.00005132424409507534,0.00005596948505887885,0.00006103515625,0.00006655930985505723,0.0000725834420778028,0.00007915280484930479,0.00008631674575031097,0.00018825815739843027,0.000004947050303081549,0.000005394796609394436,0.000005883067418700946,0.000006415530511884418,0.0000069961856323598564,0.00000762939453125,0.000008319913731882154,0.00000907293025972535,0.000009894100606163098,0.000010789593218788871,0.000011766134837401892,0.000012831061023768835,0.000013992371264719713,0.0000152587890625,0.000016639827463764308,0.0000181458605194507,0.000019788201212326197,0.000021579186437577742,0.000023532269674803783,0.00002566212204753767,0.000027984742529439426,0.000030517578125,0.000033279654927528616,0.0000362917210389014,0.000039576402424652394,0.000043158372875155485,0.00004706453934960757,0.00005132424409507534,0.00005596948505887885,0.00006103515625,0.00006655930985505723,0.0000725834420778028,0.00007915280484930479,0.00008631674575031097,0.00009412907869921513,0.00010264848819015068,0.0001119389701177577,0.0001220703125,0.00013311861971011446,0.000004947050303081549,0.000005394796609394436,0.000005883067418700946,0.000006415530511884418,0.0000069961856323598564,0.00000762939453125,0.000008319913731882154,0.00000907293025972535,0.000009894100606163098,0.000010789593218788871,0.000011766134837401892,0.000012831061023768835,0.000013992371264719713,0.0000152587890625,0.000016639827463764308,0.0000181458605194507,0.000019788201212326197,0.000021579186437577742,0.000023532269674803783,0.00002566212204753767,0.000027984742529439426,0.000030517578125,0.000033279654927528616,0.0000362917210389014,0.000039576402424652394,0.000043158372875155485,0.00004706453934960757,0.00005132424409507534,0.00005596948505887885,0.00006103515625,0.00006655930985505723,0.0000725834420778028,0.00007915280484930479,0.00008631674575031097,0.00009412907869921513,0.00010264848819015068,0.0001119389701177577,0.0001220703125,0.00013311861971011446,0.000004536465129862675,0.000004947050303081549,0.000005394796609394436,0.000005883067418700946,0.000006415530511884418,0.0000069961856323598564,0.00000762939453125,0.000008319913731882154,0.00000907293025972535,0.000009894100606163098,0.000010789593218788871,0.000011766134837401892,0.000012831061023768835,0.000013992371264719713,0.0000152587890625,0.000016639827463764308,0.0000181458605194507,0.000019788201212326197,0.000021579186437577742,0.000023532269674803783,0.00002566212204753767,0.000027984742529439426,0.000030517578125,0.000033279654927528616,0.0000362917210389014,0.000039576402424652394,0.000043158372875155485,0.00004706453934960757,0.00005132424409507534,0.00005596948505887885,0.00006103515625,0.00006655930985505723,0.0000725834420778028,0.00007915280484930479,0.00008631674575031097,0.00009412907869921513,0.00010264848819015068,0.0001119389701177577,0.0001220703125,0.00013311861971011446 + ], + [ + 0.0912281686682326,1.5052655709601983,3.687721957559951,3.936844149003299,3.140353893534075,3.4491272391832517,3.53333777780927,3.4947421237616973,3.533338799658994,2.891231652836252,2.2982487781025416,1.8912305078607508,1.6736861803719147,0.9473692336144023,0.5298253370300174,0.31929872576388957,0.24561430594149886,0.18596501077375494,0.1263159495235781,0.10175454601489256,0.07368434595333517,0.06315787011439958,0.07719314250594785,0.056140412434811236,0.03157903354908663,0.02456144044334289,0.010526340412520992,0.021052680825041983,0.014035112342345554,0.017543896583693767,0,0.010526328101083735,0,0,0.0035087842413482158,0.0036261111111111108,0,0,0.0637938660130719,1.4215152026143791,3.5536896887254907,3.398579638071895,2.6349410326797384,2.9075339305555556,2.8469643006535943,2.974030262254902,2.968779526960785,2.595538666666667,2.060555001633987,1.6630769215686274,1.622086705882353,0.7881237524509804,0.49588203839869294,0.30598231781045754,0.23838463807189542,0.16296042401960786,0.11364103349673205,0.08887290849673203,0.09153847385620915,0.05260914460784315,0.06044912745098039,0.042665785130718954,0.042588529411764706,0.03565279983660131,0.013992486928104576,0.01770347303921569,0.007010222222222223,0.010659312908496733,0.007020604575163399,0.014121029411764706,0,0,0.003466771241830066,0.003466771241830066,0.003508771929824561,0,0,0.05614035087719298,1.4982456140350877,3.9122807017543857,3.992982456140351,2.978947368421052,3.133333333333333,3.298245614035087,3.2807017543859645,3.2491228070175437,3.1368421052631574,2.4491228070175435,1.8807017543859648,1.9192982456140348,1.0736842105263158,0.5473684210526315,0.3964912280701754,0.2947368421052631,0.18245614035087715,0.12982456140350876,0.0807017543859649,0.1157894736842105,0.0736842105263158,0.08421052631578947,0.04912280701754385,0.05614035087719298,0.049122807017543846,0.017543859649122806,0.014035087719298244,0.007017543859649122,0.007017543859649122,0.007017543859649122,0.010526315789473682,0,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.003508771929824561,0,0,0.02807017543859649,1.2035087719298243,3.547368421052631,4.042105263157894,3.0491228070175436,3.2526315789473683,3.4491228070175435,3.385964912280701,3.3614035087719296,3.3228070175438593,2.484210526315789,1.8315789473684205,1.880701754385965,1.1719298245614034,0.519298245614035,0.3894736842105263,0.2526315789473684,0.16842105263157892,0.143859649122807,0.059649122807017535,0.10877192982456138,0.07017543859649122,0.07719298245614034,0.045614035087719294,0.059649122807017535,0.03859649122807017,0.014035087719298244,0.010526315789473682,0.003508771929824561,0.003508771929824561,0.007017543859649122,0.010526315789473682,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.04210526315789473,1.0105263157894735,3.3438596491228063,4.063157894736841,3.1859649122807014,3.435087719298245,3.621052631578947,3.5649122807017535,3.459649122807017,3.357894736842105,2.3368421052631576,1.8807017543859645,1.7473684210526315,1.0982456140350876,0.4842105263157894,0.36842105263157887,0.24561403508771923,0.14385964912280702,0.14736842105263157,0.07368421052631577,0.06666666666666665,0.06666666666666665,0.07719298245614034,0.045614035087719294,0.05614035087719297,0.031578947368421054,0.014035087719298244,0.007017543859649122,0,0.003508771929824561,0.003508771929824561,0.010526315789473682,0.003508771929824561,0.003508771929824561,0,0.003508771929824561,0,0,0.003508771929824561,0.03859649122807017,0.9543859649122806,3.2701754385964916,4.0701754385964914,3.196491228070175,3.6877192982456135,3.621052631578947,3.705263157894737,3.652631578947368,3.16140350877193,2.2245614035087717,1.9789473684210526,1.71578947368421,0.968421052631579,0.44561403508771924,0.33684210526315783,0.2,0.1508771929824561,0.1333333333333333,0.0736842105263158,0.07368421052631578,0.07017543859649122,0.06666666666666665,0.049122807017543846,0.0631578947368421,0.024561403508771926,0.017543859649122806,0.007017543859649122,0.007017543859649122,0.014035087719298244,0.010526315789473682,0.007017543859649122,0.003508771929824561,0,0,0.003508771929824561,0,0,0.003508771929824561,0.003508771929824561,0.03859649122807017,0.9122807017543859,3.245614035087719,3.9999999999999996,3.266666666666666,3.4771929824561396,3.5052631578947366,3.757894736842105,3.7368421052631575,3.1228070175438596,2.364912280701754,2.098245614035087,1.7263157894736838,0.9403508771929825,0.4350877192982456,0.34736842105263155,0.21754385964912282,0.1719298245614035,0.13684210526315788,0.10526315789473684,0.07368421052631578,0.05964912280701753,0.05614035087719298,0.05263157894736841,0.05263157894736842,0.017543859649122806,0.03157894736842105,0.003508771929824561,0.007017543859649122,0.014035087719298244,0.007017543859649122,0.003508771929824561,0,0,0,0.003508771929824561,0.003508771929824561,0,0.003508771929824561 + ], + [ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ] + ] + } + }, + { + "schema": { + "meta": { + "type": "heatmap-cells-sparse" + }, + "fields": [ + { + "name": "xMax", + "type": "time", + "typeInfo": { + "frame": "time.Time" + } + }, + { + "name": "yMin", + "type": "number", + "typeInfo": { + "frame": "float64" + }, + "labels": { + "cluster": "dev-us-central-0", + "job": "cortex-dev-01/cortex-gw-internal", + "route": "api_prom_api_v1_label_name_values" + } + }, + { + "name": "yMax", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "count", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "yLayout", + "type": "number", + "typeInfo": { + "frame": "int8" + } + } + ] + }, + "data": { + "values": [ + [ + 1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000 + ], + [ + 0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.020263118041422026,0.022097086912079608,0.024097044146999074,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.1051120519067143,0.11462550540058389,0.125,0.1363134665831572,0.14865088937534013,0.1621049443313762,0.17677669529663687,0.1927763531759926,0.2102241038134286,0.22925101080116778,0.25,0.2726269331663144,0.29730177875068026,0.45850202160233555,0.5,0.5452538663326288,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.1051120519067143,0.11462550540058389,0.125,0.1363134665831572,0.14865088937534013,0.1621049443313762,0.17677669529663687,0.1927763531759926,0.2102241038134286,0.22925101080116778,0.25,0.2726269331663144,0.29730177875068026,0.3242098886627524,0.35355339059327373,0.3855527063519852,0.4204482076268572,0.45850202160233555,0.5,0.5452538663326288,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.1363134665831572,0.14865088937534013,0.1621049443313762,0.17677669529663687,0.1927763531759926,0.2102241038134286,0.22925101080116778,0.25,0.2726269331663144,0.29730177875068026,0.3242098886627524,0.35355339059327373,0.3855527063519852,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.020263118041422026,0.022097086912079608,0.024097044146999074,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.08838834764831843,0.0963881765879963,0.1927763531759926,0.2102241038134286,0.22925101080116778,0.29730177875068026,0.3242098886627524,0.35355339059327373,0.3855527063519852,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.020263118041422026,0.022097086912079608,0.024097044146999074,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.020263118041422026,0.022097086912079608,0.024097044146999074,0.026278012976678575,0.028656376350145972,0.03125,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.020263118041422026,0.022097086912079608,0.024097044146999074,0.026278012976678575,0.028656376350145972,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.1051120519067143,0.11462550540058389,0.125,0.1363134665831572,0.14865088937534013,0.1621049443313762,0.17677669529663687 + ], + [ + 0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.020263118041422026,0.022097086912079608,0.024097044146999074,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.1051120519067143,0.11462550540058389,0.125,0.1363134665831572,0.14865088937534013,0.1621049443313762,0.17677669529663687,0.1927763531759926,0.2102241038134286,0.22925101080116778,0.25,0.2726269331663144,0.29730177875068026,0.3242098886627524,0.5,0.5452538663326288,0.5946035575013605,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.1051120519067143,0.11462550540058389,0.125,0.1363134665831572,0.14865088937534013,0.1621049443313762,0.17677669529663687,0.1927763531759926,0.2102241038134286,0.22925101080116778,0.25,0.2726269331663144,0.29730177875068026,0.3242098886627524,0.35355339059327373,0.3855527063519852,0.4204482076268572,0.45850202160233555,0.5,0.5452538663326288,0.5946035575013605,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.1051120519067143,0.14865088937534013,0.1621049443313762,0.17677669529663687,0.1927763531759926,0.2102241038134286,0.22925101080116778,0.25,0.2726269331663144,0.29730177875068026,0.3242098886627524,0.35355339059327373,0.3855527063519852,0.4204482076268572,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.020263118041422026,0.022097086912079608,0.024097044146999074,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.0963881765879963,0.1051120519067143,0.2102241038134286,0.22925101080116778,0.25,0.3242098886627524,0.35355339059327373,0.3855527063519852,0.4204482076268572,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.020263118041422026,0.022097086912079608,0.024097044146999074,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.020263118041422026,0.022097086912079608,0.024097044146999074,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.020263118041422026,0.022097086912079608,0.024097044146999074,0.026278012976678575,0.028656376350145972,0.03125,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.1051120519067143,0.11462550540058389,0.125,0.1363134665831572,0.14865088937534013,0.1621049443313762,0.17677669529663687,0.1927763531759926 + ], + [ + 0.007017543859649122,0.014035087719298244,0.04912280701754385,0.02105261926751011,0.04210522622358295,0.049122782394669336,0.02807017543859649,0.03859646660519566,0.06666662973235489,0.024561391197334668,0.02105257002176108,0.010526303478036425,0.010526315789473682,0.010526315789473682,0.028070150815721975,0.014035087719298244,0.02105260695607285,0.0035087596183873034,0.003508771929824561,0.007017531548211864,0.010526315789473682,0.007017543859649122,0.01754383502624829,0.0035087596183873034,0.007017531548211864,0.003508771929824561,0,0.014035075407860986,0.007017531548211864,0.007017531548211864,0.007017519236774607,0,0,0,0.007017531548211864,0,0,0.010526303478036425,0.010526303478036425,0.010526303478036425,0.0035087596183873034,0,0.003508771929824561,0,0.0035087596183873034,0,0.0035087596183873034,0,0,0,0.010526291166599169,0.007017543859649122,0.007017519236774607,0.007017543859649122,0.014035075407860986,0.010526315789473682,0.0035087596183873034,0.03157889812267202,0.02105260695607285,0.014238902777777777,0.028521361111111112,0.014171583333333335,0.046076458333333334,0.024836902777777777,0.07087772222222222,0.02848176388888889,0.021267277777777777,0.021188083333333333,0.014207222222222222,0.007099652777777778,0.00713925,0.014163666666666666,0.003569625,0.0035300277777777778,0,0,0.007099652777777778,0.014238902777777777,0,0,0.0070600555555555555,0,0,0,0.007064013888888889,0,0,0.010633638888888889,0.010669277777777778,0.003569625,0.0035300277777777778,0.0035300277777777778,0.007103611111111111,0,0.0035300277777777778,0,0.0035300277777777778,0,0,0,0.02839861111111111,0.01424286111111111,0.024836902777777777,0.007067972222222223,0.014167625,0.014238902777777777,0,0.017658055555555555,0.0035300277777777778,0,0.0035300277777777778,0.03193259722222222,0.021267277777777777,0.007017543859649122,0.010526315789473682,0.04210526315789473,0.017543859649122806,0.08771929824561402,0.03859649122807017,0.07719298245614034,0.02456140350877193,0.017543859649122806,0.017543859649122806,0.021052631578947368,0.007017543859649122,0.003508771929824561,0.007017543859649122,0.003508771929824561,0,0,0.007017543859649122,0.014035087719298244,0,0,0.007017543859649122,0,0,0,0.007017543859649122,0,0,0.010526315789473682,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.007017543859649122,0.003508771929824561,0,0,0,0.02807017543859649,0.014035087719298244,0.02456140350877193,0.007017543859649122,0.014035087719298244,0.014035087719298244,0,0.017543859649122806,0.003508771929824561,0.010526315789473682,0.02456140350877193,0.04912280701754385,0.03157894736842105,0.10175438596491228,0.05263157894736842,0.07719298245614034,0.03508771929824561,0.021052631578947364,0.02807017543859649,0.04912280701754385,0.017543859649122806,0.02807017543859649,0.007017543859649122,0.003508771929824561,0,0.003508771929824561,0,0.007017543859649122,0.010526315789473682,0.02456140350877193,0.003508771929824561,0.007017543859649122,0.014035087719298244,0.007017543859649122,0.014035087719298244,0.003508771929824561,0.007017543859649122,0.003508771929824561,0,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.017543859649122806,0.007017543859649122,0.017543859649122806,0.003508771929824561,0,0.017543859649122806,0.003508771929824561,0.014035087719298244,0.03859649122807017,0.05263157894736842,0.0631578947368421,0.10526315789473684,0.045614035087719294,0.04210526315789473,0.04210526315789473,0.024561403508771926,0.031578947368421054,0.04912280701754385,0.02456140350877193,0.03859649122807017,0.017543859649122806,0.003508771929824561,0.007017543859649122,0.010526315789473682,0,0.007017543859649122,0.010526315789473682,0.02456140350877193,0.003508771929824561,0.007017543859649122,0.017543859649122806,0.007017543859649122,0.014035087719298244,0.003508771929824561,0.007017543859649122,0.003508771929824561,0,0.003508771929824561,0.007017543859649122,0.024561403508771926,0.045614035087719294,0.05614035087719298,0.06666666666666665,0.05263157894736842,0.03859649122807017,0.03508771929824561,0.031578947368421054,0.017543859649122806,0.017543859649122806,0.014035087719298244,0.017543859649122806,0.017543859649122806,0.003508771929824561,0.007017543859649122,0.010526315789473682,0,0.010526315789473682,0.014035087719298244,0.02456140350877193,0.003508771929824561,0.007017543859649122,0.017543859649122806,0.007017543859649122,0.014035087719298244,0.003508771929824561,0.007017543859649122,0.003508771929824561,0.007017543859649122,0.024561403508771926,0.045614035087719294,0.059649122807017535,0.07368421052631578,0.07719298245614034,0.042105263157894736,0.03508771929824561,0.03859649122807017,0.02807017543859649,0.014035087719298244,0.021052631578947364,0.017543859649122806,0.014035087719298244,0.003508771929824561,0.014035087719298244,0.007017543859649122,0.017543859649122806,0.010526315789473682,0.010526315789473682,0,0.003508771929824561,0.010526315789473682,0.017543859649122806,0.014035087719298244,0.010526315789473682,0.007017543859649122,0.021052631578947364,0.003508771929824561,0.003508771929824561,0,0,0,0.007017543859649122,0,0.003508771929824561,0,0.003508771929824561,0,0.014035087719298244,0.007017543859649122,0.021052631578947364,0.010526315789473682 + ], + [ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ] + ] + } + }, + { + "schema": { + "meta": { + "type": "heatmap-cells-sparse" + }, + "fields": [ + { + "name": "xMax", + "type": "time", + "typeInfo": { + "frame": "time.Time" + } + }, + { + "name": "yMin", + "type": "number", + "typeInfo": { + "frame": "float64" + }, + "labels": { + "cluster": "dev-us-central-0", + "job": "cortex-dev-01/cortex-gw-internal", + "route": "api_prom_api_v1_labels" + } + }, + { + "name": "yMax", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "count", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "yLayout", + "type": "number", + "typeInfo": { + "frame": "int8" + } + } + ] + }, + "data": { + "values": [ + [ + 1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000 + ], + [ + 0.004645340292979379,0.005065779510355506,0.005524271728019902,0.009290680585958758,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.009290680585958758,0.028656376350145972,0.04052623608284405,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.007164094087536493,0.009290680585958758,0.028656376350145972,0.04052623608284405,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.028656376350145972,0.08838834764831843,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.08838834764831843,0.004259795830723663,0.004645340292979379,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.08838834764831843,0.004259795830723663,0.004645340292979379,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.03716272234383503,0.11462550540058389 + ], + [ + 0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.010131559020711013,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.010131559020711013,0.03125,0.044194173824159216,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.0078125,0.010131559020711013,0.03125,0.044194173824159216,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.03125,0.0963881765879963,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.0963881765879963,0.004645340292979379,0.005065779510355506,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.0963881765879963,0.004645340292979379,0.005065779510355506,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.04052623608284405,0.125 + ], + [ + 0.007017531548211864,0.003508771929824561,0.010526315789473682,0.0035087596183873034,0.003508771929824561,0.003508771929824561,0.0035087596183873034,0.0035339861111111114,0.00713925,0.0035300277777777778,0,0.003569625,0.0035300277777777778,0.003569625,0.0035300277777777778,0.007017543859649122,0,0.007017543859649122,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.007017543859649122,0,0.010526315789473682,0.003508771929824561,0.003508771929824561,0,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.003508771929824561,0,0.010526315789473682,0.007017543859649122,0,0,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.007017543859649122,0.007017543859649122,0,0,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.007017543859649122,0.010526315789473682,0.003508771929824561,0.003508771929824561 + ], + [ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ] + ] + } + }, + { + "schema": { + "meta": { + "type": "heatmap-cells-sparse" + }, + "fields": [ + { + "name": "xMax", + "type": "time", + "typeInfo": { + "frame": "time.Time" + } + }, + { + "name": "yMin", + "type": "number", + "typeInfo": { + "frame": "float64" + }, + "labels": { + "cluster": "dev-us-central-0", + "job": "cortex-dev-01/cortex-gw-internal", + "route": "api_prom_api_v1_query" + } + }, + { + "name": "yMax", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "count", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "yLayout", + "type": "number", + "typeInfo": { + "frame": "int8" + } + } + ] + }, + "data": { + "values": [ + [ + 1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963400000,1649963400000,1649963400000,1649963400000,1649963500000,1649963500000,1649963500000,1649963500000,1649963600000,1649963600000,1649963600000,1649963600000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000 + ], + [ + 0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.1621049443313762,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.1621049443313762,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.1621049443313762,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.011048543456039804,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.03125 + ], + [ + 0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.17677669529663687,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.17677669529663687,0.006569503244169644,0.007164094087536493,0.0078125,0.17677669529663687,0.006569503244169644,0.007164094087536493,0.0078125,0.012048522073499537,0.006569503244169644,0.007164094087536493,0.0078125,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.0340783666457893 + ], + [ + 0.007017531548211864,0.0035087596183873034,0,0.003508771929824561,0,0.0035087596183873034,0.003508771929824561,0.0035300277777777778,0.0035300277777777778,0.0035300277777777778,0.0035339861111111114,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.007017543859649122,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.003508771929824561,0,0.007017543859649122,0.003508771929824561,0,0,0.007017543859649122,0.003508771929824561,0.003508771929824561,0,0.003508771929824561,0,0,0.007017543859649122,0.003508771929824561,0.003508771929824561,0,0.007017543859649122,0,0,0.003508771929824561,0.003508771929824561 + ], + [ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ] + ] + } + }, + { + "schema": { + "meta": { + "type": "heatmap-cells-sparse" + }, + "fields": [ + { + "name": "xMax", + "type": "time", + "typeInfo": { + "frame": "time.Time" + } + }, + { + "name": "yMin", + "type": "number", + "typeInfo": { + "frame": "float64" + }, + "labels": { + "cluster": "dev-us-central-0", + "job": "cortex-dev-01/cortex-gw-internal", + "route": "api_prom_api_v1_query_range" + } + }, + { + "name": "yMax", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "count", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "yLayout", + "type": "number", + "typeInfo": { + "frame": "int8" + } + } + ] + }, + "data": { + "values": [ + [ + 1649963300000,1649963300000,1649963300000,1649963300000,1649963400000,1649963400000,1649963400000,1649963500000,1649963500000,1649963500000,1649963500000,1649963600000,1649963600000,1649963600000,1649963600000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963800000,1649963800000,1649963800000,1649963800000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000 + ], + [ + 0.009290680585958758,0.010131559020711013,0.018581361171917516,0.044194173824159216,0.010131559020711013,0.044194173824159216,0.17677669529663687,0.010131559020711013,0.04052623608284405,0.044194173824159216,0.17677669529663687,0.010131559020711013,0.04052623608284405,0.07432544468767006,0.17677669529663687,0.009290680585958758,0.010131559020711013,0.04052623608284405,0.07432544468767006,0.3855527063519852,0.009290680585958758,0.010131559020711013,0.07432544468767006,0.3855527063519852,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.04052623608284405,0.3855527063519852 + ], + [ + 0.010131559020711013,0.011048543456039804,0.020263118041422026,0.04819408829399815,0.011048543456039804,0.04819408829399815,0.1927763531759926,0.011048543456039804,0.044194173824159216,0.04819408829399815,0.1927763531759926,0.011048543456039804,0.044194173824159216,0.0810524721656881,0.1927763531759926,0.010131559020711013,0.011048543456039804,0.044194173824159216,0.0810524721656881,0.4204482076268572,0.010131559020711013,0.011048543456039804,0.0810524721656881,0.4204482076268572,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.044194173824159216,0.4204482076268572 + ], + [ + 0.003508771929824561,0.007017519236774607,0.003508771929824561,0.003508771929824561,0.0070600555555555555,0.0035339861111111114,0.0035300277777777778,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.007017543859649122,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.003508771929824561 + ], + [ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ] + ] + } + }, + { + "schema": { + "meta": { + "type": "heatmap-cells-sparse" + }, + "fields": [ + { + "name": "xMax", + "type": "time", + "typeInfo": { + "frame": "time.Time" + } + }, + { + "name": "yMin", + "type": "number", + "typeInfo": { + "frame": "float64" + }, + "labels": { + "cluster": "dev-us-central-0", + "job": "cortex-dev-01/cortex-gw-internal", + "route": "api_prom_api_v1_series" + } + }, + { + "name": "yMax", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "count", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "yLayout", + "type": "number", + "typeInfo": { + "frame": "int8" + } + } + ] + }, + "data": { + "values": [ + [ + 1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963400000,1649963400000,1649963400000,1649963500000,1649963500000,1649963500000,1649963600000,1649963600000,1649963600000,1649963600000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000 + ], + [ + 0.006569503244169644,0.007164094087536493,0.0078125,0.024097044146999074,0.04052623608284405,0.0078125,0.009290680585958758,0.024097044146999074,0.0060242610367497685,0.009290680585958758,0.024097044146999074,0.0060242610367497685,0.009290680585958758,0.011048543456039804,0.024097044146999074,0.0060242610367497685,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.0060242610367497685,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.0060242610367497685,0.012048522073499537,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.125 + ], + [ + 0.007164094087536493,0.0078125,0.008519591661447326,0.026278012976678575,0.044194173824159216,0.008519591661447326,0.010131559020711013,0.026278012976678575,0.006569503244169644,0.010131559020711013,0.026278012976678575,0.006569503244169644,0.010131559020711013,0.012048522073499537,0.026278012976678575,0.006569503244169644,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.020263118041422026,0.006569503244169644,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.020263118041422026,0.006569503244169644,0.013139006488339287,0.015625,0.01703918332289465,0.018581361171917516,0.020263118041422026,0.1363134665831572 + ], + [ + 0.007017531548211864,0,0.0035087596183873034,0.003508771929824561,0.003508771929824561,0.0035300277777777778,0.0035339861111111114,0.007103611111111111,0.003508771929824561,0.003508771929824561,0.007017543859649122,0.007017543859649122,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.007017543859649122,0.003508771929824561,0,0,0.003508771929824561,0,0,0.003508771929824561,0.003508771929824561,0.003508771929824561,0,0,0.003508771929824561,0,0,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.003508771929824561,0,0,0.003508771929824561,0.003508771929824561 + ], + [ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ] + ] + } + }, + { + "schema": { + "meta": { + "type": "heatmap-cells-sparse" + }, + "fields": [ + { + "name": "xMax", + "type": "time", + "typeInfo": { + "frame": "time.Time" + } + }, + { + "name": "yMin", + "type": "number", + "typeInfo": { + "frame": "float64" + }, + "labels": { + "cluster": "dev-us-central-0", + "job": "cortex-dev-01/cortex-gw-internal", + "route": "api_prom_push" + } + }, + { + "name": "yMax", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "count", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "yLayout", + "type": "number", + "typeInfo": { + "frame": "int8" + } + } + ] + }, + "data": { + "values": [ + [ + 1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000 + ], + [ + 0.0010649489576809157,0.0011613350732448448,0.0012664448775888766,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.0011613350732448448,0.0012664448775888766,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.0011613350732448448,0.0012664448775888766,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.0011613350732448448,0.0012664448775888766,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.0011613350732448448,0.0012664448775888766,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.04052623608284405,0.0012664448775888766,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.04052623608284405,0.0012664448775888766,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.04052623608284405 + ], + [ + 0.0011613350732448448,0.0012664448775888766,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.0012664448775888766,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.0012664448775888766,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.0012664448775888766,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.0012664448775888766,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.044194173824159216,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.044194173824159216,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.044194173824159216 + ], + [ + 0.003508771929824561,0,0.01754383502624829,0.02105261926751011,0.02807015081572197,0.042105189289271185,0.05964904893839399,0.056140289320006684,0.07368416128056675,0.05614035087719298,0.04561402277628204,0.017543859649122806,0.024561403508771926,0.010526315789473682,0.007017543859649122,0.024561403508771926,0.05263157894736842,0.04210525084645747,0.05263157894736842,0.024561391197334668,0.007017543859649122,0,0.003508771929824561,0.0035087596183873034,0.03508764542962206,0.014035063096423729,0.014035050784986472,0.003508771929824561,0.0035339861111111114,0.028252097222222224,0.010669277777777778,0.028327333333333333,0.03193655555555555,0.04260979166666667,0.03899661111111111,0.05680909722222222,0.042728583333333334,0.039265875,0.028517402777777777,0.02141775,0.003569625,0.017848125,0.028517402777777777,0.02141775,0.032126625,0.049935152777777776,0.02141775,0.010708875,0.007099652777777778,0,0,0.0070600555555555555,0.03182172222222222,0.0035339861111111114,0.014124069444444444,0.007017543859649122,0.024561403508771926,0.017543859649122806,0.031578947368421054,0.03508771929824561,0.05263157894736841,0.04210526315789473,0.0631578947368421,0.06666666666666665,0.03859649122807017,0.04210526315789473,0.02807017543859649,0.014035087719298244,0.021052631578947364,0.02807017543859649,0.017543859649122806,0.04912280701754385,0.05614035087719298,0.014035087719298244,0.010526315789473682,0.014035087719298244,0.003508771929824561,0,0.010526315789473682,0.031578947368421054,0.014035087719298244,0.010526315789473682,0.003508771929824561,0.007017543859649122,0.021052631578947364,0.021052631578947368,0.031578947368421054,0.04210526315789473,0.04561403508771929,0.05263157894736842,0.05964912280701754,0.06315789473684211,0.03859649122807017,0.04561403508771929,0.021052631578947364,0.017543859649122806,0.014035087719298244,0.017543859649122806,0.024561403508771926,0.05614035087719298,0.04912280701754385,0.024561403508771926,0.007017543859649122,0.014035087719298244,0.003508771929824561,0,0.010526315789473682,0.021052631578947364,0.021052631578947364,0.010526315789473682,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.017543859649122806,0.045614035087719294,0.021052631578947364,0.06315789473684211,0.05263157894736841,0.07719298245614034,0.04561403508771929,0.04210526315789473,0.024561403508771926,0.024561403508771926,0.014035087719298244,0.010526315789473682,0.010526315789473682,0.04561403508771929,0.05614035087719298,0.03859649122807017,0.03859649122807017,0.010526315789473682,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.014035087719298244,0.017543859649122806,0.024561403508771926,0.007017543859649122,0.003508771929824561,0.003508771929824561,0.007017543859649122,0.02807017543859649,0.04912280701754386,0.03508771929824561,0.04561403508771929,0.042105263157894736,0.07017543859649121,0.059649122807017535,0.03859649122807017,0.03157894736842105,0.03157894736842105,0.007017543859649122,0.007017543859649122,0.007017543859649122,0.07368421052631578,0.04912280701754385,0.02807017543859649,0.03508771929824561,0.010526315789473682,0.003508771929824561,0.003508771929824561,0.014035087719298244,0.010526315789473682,0.02456140350877193,0.007017543859649122,0.007017543859649122,0.003508771929824561,0.010526315789473682,0.03157894736842105,0.05263157894736841,0.02807017543859649,0.05263157894736842,0.03859649122807017,0.05614035087719298,0.059649122807017535,0.04210526315789473,0.024561403508771926,0.04210526315789473,0.007017543859649122,0.010526315789473682,0.007017543859649122,0.0807017543859649,0.059649122807017535,0.014035087719298244,0.021052631578947364,0.014035087719298244,0.007017543859649122,0,0.007017543859649122,0.010526315789473682,0.010526315789473682,0.024561403508771926,0.007017543859649122,0.014035087719298244,0.003508771929824561 + ], + [ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ] + ] + } + }, + { + "schema": { + "meta": { + "type": "heatmap-cells-sparse" + }, + "fields": [ + { + "name": "xMax", + "type": "time", + "typeInfo": { + "frame": "time.Time" + } + }, + { + "name": "yMin", + "type": "number", + "typeInfo": { + "frame": "float64" + }, + "labels": { + "cluster": "dev-us-central-0", + "job": "cortex-dev-01/cortex-gw-internal", + "route": "api_v1_push" + } + }, + { + "name": "yMax", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "count", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "yLayout", + "type": "number", + "typeInfo": { + "frame": "int8" + } + } + ] + }, + "data": { + "values": [ + [ + 1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000 + ], + [ + 0.00048828125,0.0005324744788404579,0.0005806675366224224,0.0006332224387944383,0.0006905339660024878,0.0007530326295937211,0.0008211879055212055,0.0008955117609420616,0.0009765625,0.0010649489576809157,0.0011613350732448448,0.0012664448775888766,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.012048522073499537,0.05255602595335715,0.00048828125,0.0005324744788404579,0.0005806675366224224,0.0006332224387944383,0.0006905339660024878,0.0007530326295937211,0.0008211879055212055,0.0008955117609420616,0.0009765625,0.0010649489576809157,0.0011613350732448448,0.0012664448775888766,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.0005324744788404579,0.0005806675366224224,0.0006332224387944383,0.0006905339660024878,0.0007530326295937211,0.0008211879055212055,0.0008955117609420616,0.0009765625,0.0010649489576809157,0.0011613350732448448,0.0012664448775888766,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.0005324744788404579,0.0005806675366224224,0.0006332224387944383,0.0006905339660024878,0.0007530326295937211,0.0008211879055212055,0.0008955117609420616,0.0009765625,0.0010649489576809157,0.0011613350732448448,0.0012664448775888766,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.018581361171917516,0.020263118041422026,0.0005324744788404579,0.0005806675366224224,0.0006332224387944383,0.0006905339660024878,0.0007530326295937211,0.0008211879055212055,0.0008955117609420616,0.0009765625,0.0010649489576809157,0.0011613350732448448,0.0012664448775888766,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.012048522073499537,0.018581361171917516,0.020263118041422026,0.057312752700291944,0.0005324744788404579,0.0005806675366224224,0.0006332224387944383,0.0006905339660024878,0.0007530326295937211,0.0008211879055212055,0.0008955117609420616,0.0009765625,0.0010649489576809157,0.0011613350732448448,0.0012664448775888766,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.018581361171917516,0.020263118041422026,0.022097086912079608,0.057312752700291944,0.0005324744788404579,0.0005806675366224224,0.0006332224387944383,0.0006905339660024878,0.0007530326295937211,0.0008211879055212055,0.0008955117609420616,0.0009765625,0.0010649489576809157,0.0011613350732448448,0.0012664448775888766,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.020263118041422026,0.022097086912079608,0.057312752700291944 + ], + [ + 0.0005324744788404579,0.0005806675366224224,0.0006332224387944383,0.0006905339660024878,0.0007530326295937211,0.0008211879055212055,0.0008955117609420616,0.0009765625,0.0010649489576809157,0.0011613350732448448,0.0012664448775888766,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.013139006488339287,0.057312752700291944,0.0005324744788404579,0.0005806675366224224,0.0006332224387944383,0.0006905339660024878,0.0007530326295937211,0.0008211879055212055,0.0008955117609420616,0.0009765625,0.0010649489576809157,0.0011613350732448448,0.0012664448775888766,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.0005806675366224224,0.0006332224387944383,0.0006905339660024878,0.0007530326295937211,0.0008211879055212055,0.0008955117609420616,0.0009765625,0.0010649489576809157,0.0011613350732448448,0.0012664448775888766,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.0005806675366224224,0.0006332224387944383,0.0006905339660024878,0.0007530326295937211,0.0008211879055212055,0.0008955117609420616,0.0009765625,0.0010649489576809157,0.0011613350732448448,0.0012664448775888766,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.020263118041422026,0.022097086912079608,0.0005806675366224224,0.0006332224387944383,0.0006905339660024878,0.0007530326295937211,0.0008211879055212055,0.0008955117609420616,0.0009765625,0.0010649489576809157,0.0011613350732448448,0.0012664448775888766,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.013139006488339287,0.020263118041422026,0.022097086912079608,0.0625,0.0005806675366224224,0.0006332224387944383,0.0006905339660024878,0.0007530326295937211,0.0008211879055212055,0.0008955117609420616,0.0009765625,0.0010649489576809157,0.0011613350732448448,0.0012664448775888766,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.020263118041422026,0.022097086912079608,0.024097044146999074,0.0625,0.0005806675366224224,0.0006332224387944383,0.0006905339660024878,0.0007530326295937211,0.0008211879055212055,0.0008955117609420616,0.0009765625,0.0010649489576809157,0.0011613350732448448,0.0012664448775888766,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.022097086912079608,0.024097044146999074,0.0625 + ], + [ + 0.0035087596183873034,0.0035087596183873034,0.024561354263022896,0.056140252385694915,0.056140252385694915,0.0666665681751686,0.07368408741194321,0.04912274546035757,0.03508765774105932,0.021052582333198337,0.014035038473549213,0.05964892582402141,0.05964892582402141,0.08771903970543161,0.031578848876922985,0.03508764542962206,0.035087608495310285,0.03157883656548573,0,0,0.0035087596183873034,0.0035087596183873034,0.007017519236774607,0.010526315789473682,0.028070126192847458,0.11228060326288788,0.12631566635931163,0.1403507417671726,0.15789462603916993,0.08771917513124144,0.06666658048660586,0.04210514004352216,0.007017519236774607,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.0035300277777777778,0.0070600555555555555,0.02826001388888889,0.03885405555555556,0.04944413888888889,0.05652002777777778,0.04944413888888889,0.049459972222222225,0.021192041666666668,0.017658055555555555,0.021188083333333333,0.042364291666666665,0.06001047222222222,0.060026305555555555,0.03530819444444445,0.02471811111111111,0.024710194444444444,0.01765013888888889,0.0070600555555555555,0,0.0035300277777777778,0.0035300277777777778,0.0035300277777777778,0.003569625,0.021298958333333333,0.06040644444444444,0.11034159722222223,0.12450130555555555,0.11399041666666666,0.09610269444444444,0.07107968055555555,0.028279819444444444,0.0035300277777777778,0,0,0.0035300277777777778,0.007017543859649122,0.03859649122807017,0.04210526315789473,0.04561403508771929,0.05614035087719298,0.07368421052631577,0.04912280701754385,0.021052631578947364,0.017543859649122806,0.02456140350877193,0.035087719298245605,0.04912280701754385,0.06315789473684211,0.03157894736842105,0.03859649122807017,0.017543859649122806,0.017543859649122806,0.010526315789473682,0.003508771929824561,0.003508771929824561,0.003508771929824561,0,0.003508771929824561,0.024561403508771926,0.07017543859649122,0.13684210526315788,0.11929824561403507,0.10175438596491226,0.10877192982456138,0.08421052631578946,0.02456140350877193,0.003508771929824561,0,0,0.003508771929824561,0.010526315789473682,0.04210526315789473,0.059649122807017535,0.07368421052631578,0.06666666666666665,0.07368421052631578,0.04210526315789473,0.010526315789473682,0.021052631578947364,0.03508771929824561,0.05614035087719298,0.05263157894736841,0.06666666666666667,0.06666666666666665,0.03508771929824561,0.014035087719298244,0.010526315789473682,0.010526315789473682,0.003508771929824561,0.003508771929824561,0.007017543859649122,0,0.003508771929824561,0.03508771929824561,0.08421052631578946,0.16491228070175437,0.15438596491228068,0.11578947368421053,0.11578947368421053,0.0807017543859649,0.014035087719298244,0.007017543859649122,0,0,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.010526315789473682,0.031578947368421054,0.04561403508771929,0.0807017543859649,0.04912280701754385,0.11929824561403507,0.04561403508771929,0.010526315789473682,0.021052631578947368,0.02807017543859649,0.059649122807017535,0.04912280701754385,0.059649122807017535,0.059649122807017535,0.03157894736842105,0.014035087719298244,0.014035087719298244,0.017543859649122806,0.003508771929824561,0.007017543859649122,0.003508771929824561,0,0,0.021052631578947364,0.0982456140350877,0.12631578947368421,0.17543859649122806,0.14385964912280702,0.09473684210526315,0.03859649122807017,0.017543859649122806,0.014035087719298244,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.010526315789473682,0.017543859649122806,0.03859649122807017,0.0807017543859649,0.03859649122807017,0.1087719298245614,0.031578947368421054,0.014035087719298244,0.017543859649122806,0.02807017543859649,0.04912280701754385,0.04210526315789473,0.04561403508771929,0.04912280701754385,0.02807017543859649,0.014035087719298244,0.007017543859649122,0.014035087719298244,0.007017543859649122,0.010526315789473682,0.007017543859649122,0,0,0.03508771929824561,0.10526315789473682,0.1263157894736842,0.15438596491228068,0.11929824561403507,0.07017543859649122,0.02456140350877193,0.017543859649122806,0.010526315789473682,0,0,0,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.010526315789473682,0.03508771929824561,0.05263157894736842,0.07719298245614034,0.06666666666666665,0.1087719298245614,0.05263157894736842,0.02807017543859649,0.014035087719298244,0.035087719298245605,0.04912280701754385,0.05614035087719298,0.05263157894736842,0.03157894736842105,0.03859649122807017,0.02807017543859649,0.007017543859649122,0.010526315789473682,0.007017543859649122,0.010526315789473682,0.007017543859649122,0,0,0.04210526315789473,0.12280701754385963,0.13684210526315788,0.17543859649122806,0.1508771929824561,0.0807017543859649,0.02807017543859649,0.017543859649122806,0.017543859649122806,0,0,0,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.003508771929824561 + ], + [ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ] + ] + } + }, + { + "schema": { + "meta": { + "type": "heatmap-cells-sparse" + }, + "fields": [ + { + "name": "xMax", + "type": "time", + "typeInfo": { + "frame": "time.Time" + } + }, + { + "name": "yMin", + "type": "number", + "typeInfo": { + "frame": "float64" + }, + "labels": { + "cluster": "dev-us-central-0", + "job": "cortex-dev-01/cortex-gw-internal", + "route": "prometheus_api_v1_query" + } + }, + { + "name": "yMax", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "count", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "yLayout", + "type": "number", + "typeInfo": { + "frame": "int8" + } + } + ] + }, + "data": { + "values": [ + [ + 1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000 + ], + [ + 0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.020263118041422026,0.022097086912079608,0.024097044146999074,0.026278012976678575,0.028656376350145972,0.03125,0.07432544468767006,0.2726269331663144,0.29730177875068026,0.3242098886627524,0.35355339059327373,0.3855527063519852,0.4204482076268572,0.45850202160233555,0.5,0.5452538663326288,0.5946035575013605,0.6484197773255048,0.7071067811865475,0.7711054127039704,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.07432544468767006,0.3242098886627524,0.35355339059327373,0.3855527063519852,0.4204482076268572,0.45850202160233555,0.5,0.5452538663326288,0.5946035575013605,0.6484197773255048,0.7071067811865475,0.7711054127039704,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.07432544468767006,0.3242098886627524,0.35355339059327373,0.3855527063519852,0.4204482076268572,0.45850202160233555,0.5,0.5452538663326288,0.5946035575013605,0.6484197773255048,0.7071067811865475,0.7711054127039704,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.3242098886627524,0.35355339059327373,0.3855527063519852,0.4204482076268572,0.45850202160233555,0.5,0.5452538663326288,0.5946035575013605,0.6484197773255048,0.7071067811865475,0.7711054127039704,0.8408964152537144,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.3855527063519852,0.4204482076268572,0.45850202160233555,0.5,0.5452538663326288,0.5946035575013605,0.6484197773255048,0.7071067811865475,0.7711054127039704,0.8408964152537144,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.3855527063519852,0.4204482076268572,0.45850202160233555,0.5,0.5452538663326288,0.5946035575013605,0.6484197773255048,0.7071067811865475,0.7711054127039704,0.8408964152537144,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.35355339059327373,0.3855527063519852,0.4204482076268572,0.45850202160233555,0.5,0.5452538663326288,0.5946035575013605,0.6484197773255048 + ], + [ + 0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.020263118041422026,0.022097086912079608,0.024097044146999074,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.0810524721656881,0.29730177875068026,0.3242098886627524,0.35355339059327373,0.3855527063519852,0.4204482076268572,0.45850202160233555,0.5,0.5452538663326288,0.5946035575013605,0.6484197773255048,0.7071067811865475,0.7711054127039704,0.8408964152537144,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.0810524721656881,0.35355339059327373,0.3855527063519852,0.4204482076268572,0.45850202160233555,0.5,0.5452538663326288,0.5946035575013605,0.6484197773255048,0.7071067811865475,0.7711054127039704,0.8408964152537144,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.0810524721656881,0.35355339059327373,0.3855527063519852,0.4204482076268572,0.45850202160233555,0.5,0.5452538663326288,0.5946035575013605,0.6484197773255048,0.7071067811865475,0.7711054127039704,0.8408964152537144,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.35355339059327373,0.3855527063519852,0.4204482076268572,0.45850202160233555,0.5,0.5452538663326288,0.5946035575013605,0.6484197773255048,0.7071067811865475,0.7711054127039704,0.8408964152537144,0.9170040432046711,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.4204482076268572,0.45850202160233555,0.5,0.5452538663326288,0.5946035575013605,0.6484197773255048,0.7071067811865475,0.7711054127039704,0.8408964152537144,0.9170040432046711,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.4204482076268572,0.45850202160233555,0.5,0.5452538663326288,0.5946035575013605,0.6484197773255048,0.7071067811865475,0.7711054127039704,0.8408964152537144,0.9170040432046711,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.3855527063519852,0.4204482076268572,0.45850202160233555,0.5,0.5452538663326288,0.5946035575013605,0.6484197773255048,0.7071067811865475 + ], + [ + 0.014035075407860986,0.010526291166599169,0.04561398584197026,0.014035087719298244,0,0.014035087719298244,0.0035087596183873034,0.007017543859649122,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.007017531548211864,0,0.003508771929824561,0,0,0.007017543859649122,0.007017543859649122,0.003508771929824561,0.003508771929824561,0.010526315789473682,0.003508771929824561,0.007017543859649122,0.003508771929824561,0.003508771929824561,0,0,0.003508771929824561,0,0.014035087719298244,0.017543859649122806,0.010526315789473682,0.003508771929824561,0.010526315789473682,0,0,0.007017543859649122,0.0142785,0,0.00713925,0.003569625,0.003569625,0.003569625,0,0,0.0142785,0,0.010708875,0.003569625,0.00713925,0.003569625,0,0.003569625,0.003508771929824561,0.017543859649122806,0.021052631578947364,0.03859649122807017,0.024561403508771926,0.017543859649122806,0.007017543859649122,0.010526315789473682,0.007017543859649122,0,0.010526315789473682,0.003508771929824561,0,0,0.003508771929824561,0.003508771929824561,0.003508771929824561,0,0,0.014035087719298244,0.007017543859649122,0.017543859649122806,0,0.003508771929824561,0.003508771929824561,0,0.007017543859649122,0.003508771929824561,0.017543859649122806,0.021052631578947364,0.03859649122807017,0.024561403508771926,0.017543859649122806,0.007017543859649122,0.010526315789473682,0.010526315789473682,0,0.010526315789473682,0.010526315789473682,0,0,0.003508771929824561,0.003508771929824561,0,0,0.017543859649122806,0.010526315789473682,0.014035087719298244,0.007017543859649122,0.003508771929824561,0.007017543859649122,0,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.017543859649122806,0.021052631578947364,0.03859649122807017,0.024561403508771926,0.017543859649122806,0.007017543859649122,0.010526315789473682,0.007017543859649122,0.007017543859649122,0.010526315789473682,0.007017543859649122,0,0,0.003508771929824561,0.003508771929824561,0.010526315789473682,0.021052631578947364,0.010526315789473682,0.010526315789473682,0.003508771929824561,0.003508771929824561,0,0.003508771929824561,0.003508771929824561,0.003508771929824561,0,0.024561403508771926,0.024561403508771926,0.03508771929824561,0.02807017543859649,0.017543859649122806,0.003508771929824561,0.003508771929824561,0.007017543859649122,0.010526315789473682,0.007017543859649122,0.003508771929824561,0.010526315789473682,0.010526315789473682,0.017543859649122806,0,0.007017543859649122,0.007017543859649122,0,0,0,0.003508771929824561,0.003508771929824561,0,0.024561403508771926,0.024561403508771926,0.03508771929824561,0.02807017543859649,0.017543859649122806,0.003508771929824561,0.003508771929824561,0.007017543859649122,0.014035087719298244,0.007017543859649122,0.007017543859649122,0.003508771929824561,0.010526315789473682,0.010526315789473682,0.024561403508771926,0.007017543859649122,0.003508771929824561,0.007017543859649122,0.003508771929824561 + ], + [ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ] + ] + } + }, + { + "schema": { + "meta": { + "type": "heatmap-cells-sparse" + }, + "fields": [ + { + "name": "xMax", + "type": "time", + "typeInfo": { + "frame": "time.Time" + } + }, + { + "name": "yMin", + "type": "number", + "typeInfo": { + "frame": "float64" + }, + "labels": { + "cluster": "dev-us-central-0", + "job": "cortex-dev-01/cortex-gw-internal", + "route": "prometheus_api_v1_query_range" + } + }, + { + "name": "yMax", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "count", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "yLayout", + "type": "number", + "typeInfo": { + "frame": "int8" + } + } + ] + }, + "data": { + "values": [ + [ + 1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000 + ], + [ + 0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.011048543456039804,0.03125,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.14865088937534013,0.25,0.5,0.5452538663326288,0.5946035575013605,0.6484197773255048,0.7071067811865475,0.7711054127039704,0.8408964152537144,0.9170040432046711,1,1.0905077326652577,1.189207115002721,1.2968395546510096,1.414213562373095,1.5422108254079407,1.6817928305074288,1.8340080864093422,2,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.14865088937534013,0.25,0.45850202160233555,0.5,0.5452538663326288,0.5946035575013605,0.6484197773255048,0.7071067811865475,0.7711054127039704,0.8408964152537144,0.9170040432046711,1,1.0905077326652577,1.189207115002721,1.2968395546510096,1.414213562373095,1.5422108254079407,1.6817928305074288,1.8340080864093422,2,2.1810154653305154,2.378414230005442,2.5936791093020193,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.14865088937534013,0.25,0.45850202160233555,0.5,0.5452538663326288,0.5946035575013605,0.6484197773255048,0.7071067811865475,0.7711054127039704,0.8408964152537144,0.9170040432046711,1,1.0905077326652577,1.189207115002721,1.2968395546510096,1.414213562373095,1.5422108254079407,1.6817928305074288,1.8340080864093422,2,2.1810154653305154,2.378414230005442,2.5936791093020193,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.3855527063519852,0.4204482076268572,0.45850202160233555,0.5,0.5452538663326288,0.5946035575013605,0.6484197773255048,0.7071067811865475,0.7711054127039704,0.8408964152537144,0.9170040432046711,1,1.0905077326652577,1.189207115002721,1.2968395546510096,1.414213562373095,1.5422108254079407,1.6817928305074288,2.5936791093020193,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.3855527063519852,0.4204482076268572,0.45850202160233555,0.5,0.5452538663326288,0.5946035575013605,0.6484197773255048,0.7071067811865475,0.7711054127039704,0.8408964152537144,0.9170040432046711,1,1.0905077326652577,1.189207115002721,1.2968395546510096,1.414213562373095,1.5422108254079407,1.6817928305074288,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.4204482076268572,0.45850202160233555,0.5,0.5452538663326288,0.5946035575013605,0.6484197773255048,0.7071067811865475,0.7711054127039704,0.8408964152537144,0.9170040432046711,1,1.0905077326652577,1.189207115002721,1.2968395546510096,1.414213562373095,1.5422108254079407,1.6817928305074288,0.005524271728019902,0.0060242610367497685,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.1927763531759926,0.2102241038134286,0.22925101080116778,0.4204482076268572,0.45850202160233555,0.5,0.5452538663326288,0.5946035575013605,0.6484197773255048,0.7071067811865475,0.7711054127039704,0.8408964152537144,0.9170040432046711,1,1.0905077326652577,1.189207115002721,1.2968395546510096,1.414213562373095,1.5422108254079407,1.6817928305074288,1.8340080864093422,2 + ], + [ + 0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.012048522073499537,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.1621049443313762,0.2726269331663144,0.5452538663326288,0.5946035575013605,0.6484197773255048,0.7071067811865475,0.7711054127039704,0.8408964152537144,0.9170040432046711,1,1.0905077326652577,1.189207115002721,1.2968395546510096,1.414213562373095,1.5422108254079407,1.6817928305074288,1.8340080864093422,2,2.1810154653305154,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.1621049443313762,0.2726269331663144,0.5,0.5452538663326288,0.5946035575013605,0.6484197773255048,0.7071067811865475,0.7711054127039704,0.8408964152537144,0.9170040432046711,1,1.0905077326652577,1.189207115002721,1.2968395546510096,1.414213562373095,1.5422108254079407,1.6817928305074288,1.8340080864093422,2,2.1810154653305154,2.378414230005442,2.5936791093020193,2.82842712474619,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.1621049443313762,0.2726269331663144,0.5,0.5452538663326288,0.5946035575013605,0.6484197773255048,0.7071067811865475,0.7711054127039704,0.8408964152537144,0.9170040432046711,1,1.0905077326652577,1.189207115002721,1.2968395546510096,1.414213562373095,1.5422108254079407,1.6817928305074288,1.8340080864093422,2,2.1810154653305154,2.378414230005442,2.5936791093020193,2.82842712474619,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.4204482076268572,0.45850202160233555,0.5,0.5452538663326288,0.5946035575013605,0.6484197773255048,0.7071067811865475,0.7711054127039704,0.8408964152537144,0.9170040432046711,1,1.0905077326652577,1.189207115002721,1.2968395546510096,1.414213562373095,1.5422108254079407,1.6817928305074288,1.8340080864093422,2.82842712474619,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.1051120519067143,0.4204482076268572,0.45850202160233555,0.5,0.5452538663326288,0.5946035575013605,0.6484197773255048,0.7071067811865475,0.7711054127039704,0.8408964152537144,0.9170040432046711,1,1.0905077326652577,1.189207115002721,1.2968395546510096,1.414213562373095,1.5422108254079407,1.6817928305074288,1.8340080864093422,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.1051120519067143,0.45850202160233555,0.5,0.5452538663326288,0.5946035575013605,0.6484197773255048,0.7071067811865475,0.7711054127039704,0.8408964152537144,0.9170040432046711,1,1.0905077326652577,1.189207115002721,1.2968395546510096,1.414213562373095,1.5422108254079407,1.6817928305074288,1.8340080864093422,0.0060242610367497685,0.006569503244169644,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.1051120519067143,0.2102241038134286,0.22925101080116778,0.25,0.45850202160233555,0.5,0.5452538663326288,0.5946035575013605,0.6484197773255048,0.7071067811865475,0.7711054127039704,0.8408964152537144,0.9170040432046711,1,1.0905077326652577,1.189207115002721,1.2968395546510096,1.414213562373095,1.5422108254079407,1.6817928305074288,1.8340080864093422,2,2.1810154653305154 + ], + [ + 0.007017543859649122,0.007017543859649122,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.007017543859649122,0,0,0,0.003508771929824561,0,0.003508771929824561,0.003508771929824561,0.010526315789473682,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.014035087719298244,0,0.003508771929824561,0.003508771929824561,0,0.003508771929824561,0,0.003508771929824561,0.007017543859649122,0.010526315789473682,0.007017543859649122,0.007017543859649122,0.007017543859649122,0,0.003508771929824561,0.003508771929824561,0.003569625,0.003569625,0.003569625,0.003569625,0.003569625,0,0.003569625,0,0.003569625,0,0.003569625,0.003569625,0.003569625,0,0,0.003569625,0.003569625,0.003569625,0.003569625,0.00713925,0.003569625,0,0,0,0.003569625,0.003569625,0,0,0.00713925,0.00713925,0.010708875,0.003569625,0.003569625,0.003569625,0.003569625,0.003569625,0,0,0.003569625,0.003508771929824561,0,0,0.003508771929824561,0.007017543859649122,0,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.003508771929824561,0,0,0.003508771929824561,0,0.003508771929824561,0,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.007017543859649122,0.003508771929824561,0.003508771929824561,0,0,0.003508771929824561,0.003508771929824561,0,0,0.010526315789473682,0.003508771929824561,0.014035087719298244,0,0.003508771929824561,0.003508771929824561,0,0.003508771929824561,0,0,0.003508771929824561,0.003508771929824561,0,0,0.007017543859649122,0.003508771929824561,0.003508771929824561,0.007017543859649122,0.007017543859649122,0.007017543859649122,0.003508771929824561,0.003508771929824561,0,0,0.003508771929824561,0.003508771929824561,0.007017543859649122,0,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.007017543859649122,0,0.003508771929824561,0,0.003508771929824561,0.003508771929824561,0.003508771929824561,0,0,0.010526315789473682,0.003508771929824561,0.017543859649122806,0,0,0.010526315789473682,0.003508771929824561,0.003508771929824561,0,0,0.003508771929824561,0.010526315789473682,0.007017543859649122,0.003508771929824561,0.010526315789473682,0.003508771929824561,0.003508771929824561,0,0.003508771929824561,0,0,0.003508771929824561,0.010526315789473682,0,0,0.003508771929824561,0.003508771929824561,0.003508771929824561,0,0.003508771929824561,0,0.003508771929824561,0.007017543859649122,0.007017543859649122,0.003508771929824561,0,0,0,0.010526315789473682,0.003508771929824561,0.017543859649122806,0.003508771929824561,0,0.007017543859649122,0.003508771929824561,0.010526315789473682,0.003508771929824561,0.007017543859649122,0,0,0.003508771929824561,0.003508771929824561,0,0,0,0.010526315789473682,0,0,0.003508771929824561,0.003508771929824561,0,0.003508771929824561,0.003508771929824561,0,0.007017543859649122,0.003508771929824561,0.007017543859649122,0,0,0,0.007017543859649122,0.007017543859649122,0.014035087719298244,0.003508771929824561,0,0.007017543859649122,0.017543859649122806,0.003508771929824561,0.003508771929824561,0,0.003508771929824561,0.003508771929824561,0.007017543859649122,0,0,0,0.010526315789473682,0,0,0.003508771929824561,0.003508771929824561,0,0.003508771929824561,0.003508771929824561,0,0.003508771929824561,0.003508771929824561,0,0.010526315789473682,0.003508771929824561,0.007017543859649122,0,0,0,0.003508771929824561,0.010526315789473682,0.014035087719298244,0.010526315789473682,0.003508771929824561,0,0,0.007017543859649122 + ], + [ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ] + ] + } + }, + { + "schema": { + "meta": { + "type": "heatmap-cells-sparse" + }, + "fields": [ + { + "name": "xMax", + "type": "time", + "typeInfo": { + "frame": "time.Time" + } + }, + { + "name": "yMin", + "type": "number", + "typeInfo": { + "frame": "float64" + }, + "labels": { + "cluster": "dev-us-central-0", + "job": "cortex-dev-01/cortex-gw-internal", + "route": "root" + } + }, + { + "name": "yMax", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "count", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "yLayout", + "type": "number", + "typeInfo": { + "frame": "int8" + } + } + ] + }, + "data": { + "values": [ + [ + 1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963300000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963400000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963500000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963600000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963700000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963800000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000,1649963900000 + ], + [ + 0.000005883067418700946,0.000006415530511884418,0.0000069961856323598564,0.00000762939453125,0.000008319913731882154,0.00000907293025972535,0.000009894100606163098,0.000010789593218788871,0.000011766134837401892,0.000012831061023768835,0.000013992371264719713,0.0000152587890625,0.000016639827463764308,0.0000181458605194507,0.000019788201212326197,0.000021579186437577742,0.000023532269674803783,0.00002566212204753767,0.000027984742529439426,0.000030517578125,0.000033279654927528616,0.0000362917210389014,0.000039576402424652394,0.000043158372875155485,0.00004706453934960757,0.00005132424409507534,0.000005883067418700946,0.000006415530511884418,0.0000069961856323598564,0.00000762939453125,0.000008319913731882154,0.00000907293025972535,0.000009894100606163098,0.000010789593218788871,0.000011766134837401892,0.000012831061023768835,0.000013992371264719713,0.0000152587890625,0.000016639827463764308,0.0000181458605194507,0.000019788201212326197,0.000021579186437577742,0.000023532269674803783,0.00002566212204753767,0.000027984742529439426,0.000030517578125,0.000033279654927528616,0.0000362917210389014,0.000039576402424652394,0.000043158372875155485,0.00004706453934960757,0.00005132424409507534,0.000005883067418700946,0.000006415530511884418,0.0000069961856323598564,0.00000762939453125,0.000008319913731882154,0.00000907293025972535,0.000009894100606163098,0.000010789593218788871,0.000011766134837401892,0.000012831061023768835,0.000013992371264719713,0.0000152587890625,0.000016639827463764308,0.0000181458605194507,0.000019788201212326197,0.000021579186437577742,0.000023532269674803783,0.00002566212204753767,0.000027984742529439426,0.000030517578125,0.000033279654927528616,0.0000362917210389014,0.000039576402424652394,0.000043158372875155485,0.00004706453934960757,0.00005132424409507534,0.00006655930985505723,0.0000069961856323598564,0.00000762939453125,0.000008319913731882154,0.00000907293025972535,0.000009894100606163098,0.000010789593218788871,0.000011766134837401892,0.000012831061023768835,0.000013992371264719713,0.0000152587890625,0.000016639827463764308,0.0000181458605194507,0.000019788201212326197,0.000021579186437577742,0.000023532269674803783,0.00002566212204753767,0.000027984742529439426,0.000030517578125,0.000033279654927528616,0.00004706453934960757,0.00005132424409507534,0.00005596948505887885,0.00006103515625,0.00006655930985505723,0.0000069961856323598564,0.00000762939453125,0.000008319913731882154,0.00000907293025972535,0.000009894100606163098,0.000010789593218788871,0.000011766134837401892,0.000012831061023768835,0.000013992371264719713,0.0000152587890625,0.000016639827463764308,0.0000181458605194507,0.000019788201212326197,0.000021579186437577742,0.000023532269674803783,0.00002566212204753767,0.000027984742529439426,0.000030517578125,0.00004706453934960757,0.00005132424409507534,0.00005596948505887885,0.00006103515625,0.00006655930985505723,0.0000069961856323598564,0.00000762939453125,0.000008319913731882154,0.00000907293025972535,0.000009894100606163098,0.000010789593218788871,0.000011766134837401892,0.000012831061023768835,0.000013992371264719713,0.0000152587890625,0.000016639827463764308,0.0000181458605194507,0.000019788201212326197,0.000021579186437577742,0.000023532269674803783,0.00002566212204753767,0.000027984742529439426,0.000030517578125,0.000033279654927528616,0.0000362917210389014,0.000039576402424652394,0.000043158372875155485,0.00004706453934960757,0.000008319913731882154,0.00000907293025972535,0.000009894100606163098,0.000010789593218788871,0.000011766134837401892,0.000012831061023768835,0.000013992371264719713,0.0000152587890625,0.000016639827463764308,0.0000181458605194507,0.000019788201212326197,0.000021579186437577742,0.000023532269674803783,0.000030517578125,0.0000362917210389014,0.000039576402424652394,0.000043158372875155485,0.00004706453934960757 + ], + [ + 0.000006415530511884418,0.0000069961856323598564,0.00000762939453125,0.000008319913731882154,0.00000907293025972535,0.000009894100606163098,0.000010789593218788871,0.000011766134837401892,0.000012831061023768835,0.000013992371264719713,0.0000152587890625,0.000016639827463764308,0.0000181458605194507,0.000019788201212326197,0.000021579186437577742,0.000023532269674803783,0.00002566212204753767,0.000027984742529439426,0.000030517578125,0.000033279654927528616,0.0000362917210389014,0.000039576402424652394,0.000043158372875155485,0.00004706453934960757,0.00005132424409507534,0.00005596948505887885,0.000006415530511884418,0.0000069961856323598564,0.00000762939453125,0.000008319913731882154,0.00000907293025972535,0.000009894100606163098,0.000010789593218788871,0.000011766134837401892,0.000012831061023768835,0.000013992371264719713,0.0000152587890625,0.000016639827463764308,0.0000181458605194507,0.000019788201212326197,0.000021579186437577742,0.000023532269674803783,0.00002566212204753767,0.000027984742529439426,0.000030517578125,0.000033279654927528616,0.0000362917210389014,0.000039576402424652394,0.000043158372875155485,0.00004706453934960757,0.00005132424409507534,0.00005596948505887885,0.000006415530511884418,0.0000069961856323598564,0.00000762939453125,0.000008319913731882154,0.00000907293025972535,0.000009894100606163098,0.000010789593218788871,0.000011766134837401892,0.000012831061023768835,0.000013992371264719713,0.0000152587890625,0.000016639827463764308,0.0000181458605194507,0.000019788201212326197,0.000021579186437577742,0.000023532269674803783,0.00002566212204753767,0.000027984742529439426,0.000030517578125,0.000033279654927528616,0.0000362917210389014,0.000039576402424652394,0.000043158372875155485,0.00004706453934960757,0.00005132424409507534,0.00005596948505887885,0.0000725834420778028,0.00000762939453125,0.000008319913731882154,0.00000907293025972535,0.000009894100606163098,0.000010789593218788871,0.000011766134837401892,0.000012831061023768835,0.000013992371264719713,0.0000152587890625,0.000016639827463764308,0.0000181458605194507,0.000019788201212326197,0.000021579186437577742,0.000023532269674803783,0.00002566212204753767,0.000027984742529439426,0.000030517578125,0.000033279654927528616,0.0000362917210389014,0.00005132424409507534,0.00005596948505887885,0.00006103515625,0.00006655930985505723,0.0000725834420778028,0.00000762939453125,0.000008319913731882154,0.00000907293025972535,0.000009894100606163098,0.000010789593218788871,0.000011766134837401892,0.000012831061023768835,0.000013992371264719713,0.0000152587890625,0.000016639827463764308,0.0000181458605194507,0.000019788201212326197,0.000021579186437577742,0.000023532269674803783,0.00002566212204753767,0.000027984742529439426,0.000030517578125,0.000033279654927528616,0.00005132424409507534,0.00005596948505887885,0.00006103515625,0.00006655930985505723,0.0000725834420778028,0.00000762939453125,0.000008319913731882154,0.00000907293025972535,0.000009894100606163098,0.000010789593218788871,0.000011766134837401892,0.000012831061023768835,0.000013992371264719713,0.0000152587890625,0.000016639827463764308,0.0000181458605194507,0.000019788201212326197,0.000021579186437577742,0.000023532269674803783,0.00002566212204753767,0.000027984742529439426,0.000030517578125,0.000033279654927528616,0.0000362917210389014,0.000039576402424652394,0.000043158372875155485,0.00004706453934960757,0.00005132424409507534,0.00000907293025972535,0.000009894100606163098,0.000010789593218788871,0.000011766134837401892,0.000012831061023768835,0.000013992371264719713,0.0000152587890625,0.000016639827463764308,0.0000181458605194507,0.000019788201212326197,0.000021579186437577742,0.000023532269674803783,0.00002566212204753767,0.000033279654927528616,0.000039576402424652394,0.000043158372875155485,0.00004706453934960757,0.00005132424409507534 + ], + [ + 0.0035087596183873034,0,0,0.0035087596183873034,0.052631517390182125,0.17894720837236824,0.13684190828016174,0.1192980609424762,0.1578945767934209,0.12280689442948706,0.0877191874426787,0.03508767005249658,0.010526291166599169,0.017543859649122806,0.024561354263022896,0.003508771929824561,0,0.007017531548211864,0.014035075407860986,0.003508771929824561,0.003508771929824561,0,0.010526315789473682,0,0.003508771929824561,0.003508771929824561,0.0035300277777777778,0,0,0.0035300277777777778,0.028442166666666668,0.17761405555555557,0.12027434722222222,0.07432459722222223,0.156041875,0.11329744444444445,0.056662583333333336,0.02837088888888889,0.007099652777777778,0.017772888888888887,0.021227680555555555,0,0,0.0035300277777777778,0.010633638888888889,0.003569625,0.007064013888888889,0,0.010637597222222222,0,0.0035339861111111114,0.0035339861111111114,0.003508771929824561,0,0.003508771929824561,0.007017543859649122,0.014035087719298244,0.20350877192982453,0.14736842105263157,0.09473684210526315,0.19649122807017544,0.1333333333333333,0.07368421052631578,0.031578947368421054,0.010526315789473682,0.021052631578947364,0.017543859649122806,0.003508771929824561,0,0.003508771929824561,0.010526315789473682,0.003508771929824561,0.007017543859649122,0,0.003508771929824561,0,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.007017543859649122,0.007017543859649122,0.010526315789473682,0.19649122807017544,0.16491228070175437,0.10175438596491226,0.2070175438596491,0.1614035087719298,0.05614035087719298,0.02456140350877193,0.014035087719298244,0.017543859649122806,0.010526315789473682,0.003508771929824561,0,0.003508771929824561,0,0.003508771929824561,0.003508771929824561,0.003508771929824561,0,0,0,0.003508771929824561,0.007017543859649122,0.003508771929824561,0.010526315789473682,0.18245614035087718,0.17543859649122806,0.11578947368421053,0.1614035087719298,0.1508771929824561,0.06666666666666665,0.04561403508771929,0.02807017543859649,0.017543859649122806,0.010526315789473682,0.003508771929824561,0.003508771929824561,0,0,0.007017543859649122,0.007017543859649122,0,0,0,0.003508771929824561,0.003508771929824561,0,0.021052631578947364,0.14736842105263157,0.16491228070175437,0.11929824561403507,0.1719298245614035,0.1719298245614035,0.06666666666666665,0.05614035087719298,0.024561403508771926,0.017543859649122806,0.010526315789473682,0,0.003508771929824561,0,0,0.010526315789473682,0,0.003508771929824561,0,0,0.007017543859649122,0.031578947368421054,0.15438596491228068,0.15438596491228068,0.11228070175438595,0.16842105263157892,0.16491228070175437,0.07017543859649122,0.059649122807017535,0.03157894736842105,0.024561403508771926,0.010526315789473682,0,0.003508771929824561,0.007017543859649122,0.003508771929824561,0,0,0.003508771929824561 + ], + [ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/pkg/util/converter/testdata/prom-matrix-histogram-partitioned-wide-golden.txt b/pkg/util/converter/testdata/prom-matrix-histogram-partitioned-wide-golden.txt new file mode 100644 index 00000000000..b7db46c17eb --- /dev/null +++ b/pkg/util/converter/testdata/prom-matrix-histogram-partitioned-wide-golden.txt @@ -0,0 +1,490 @@ +🌟 This was machine generated. Do not edit. 🌟 + +Frame[0] { + "type": "heatmap-cells-sparse" +} +Name: +Dimensions: 5 Fields by 0 Rows ++-------------------+--------------------------------------------------------------------------------------------------------------+-----------------+-----------------+---------------+ +| Name: xMax | Name: yMin | Name: yMax | Name: count | Name: yLayout | +| Labels: | Labels: cluster=dev-us-central-0, job=cortex-dev-01/cortex-gw, route=api_prom_api_v1_cardinality_label_names | Labels: | Labels: | Labels: | +| Type: []time.Time | Type: []float64 | Type: []float64 | Type: []float64 | Type: []int8 | ++-------------------+--------------------------------------------------------------------------------------------------------------+-----------------+-----------------+---------------+ ++-------------------+--------------------------------------------------------------------------------------------------------------+-----------------+-----------------+---------------+ + + + +Frame[1] { + "type": "heatmap-cells-sparse" +} +Name: +Dimensions: 5 Fields by 0 Rows ++-------------------+---------------------------------------------------------------------------------------------------------------+-----------------+-----------------+---------------+ +| Name: xMax | Name: yMin | Name: yMax | Name: count | Name: yLayout | +| Labels: | Labels: cluster=dev-us-central-0, job=cortex-dev-01/cortex-gw, route=api_prom_api_v1_cardinality_label_values | Labels: | Labels: | Labels: | +| Type: []time.Time | Type: []float64 | Type: []float64 | Type: []float64 | Type: []int8 | ++-------------------+---------------------------------------------------------------------------------------------------------------+-----------------+-----------------+---------------+ ++-------------------+---------------------------------------------------------------------------------------------------------------+-----------------+-----------------+---------------+ + + + +Frame[2] { + "type": "heatmap-cells-sparse" +} +Name: +Dimensions: 5 Fields by 0 Rows ++-------------------+--------------------------------------------------------------------------------------------------------+-----------------+-----------------+---------------+ +| Name: xMax | Name: yMin | Name: yMax | Name: count | Name: yLayout | +| Labels: | Labels: cluster=dev-us-central-0, job=cortex-dev-01/cortex-gw, route=api_prom_api_v1_label_name_values | Labels: | Labels: | Labels: | +| Type: []time.Time | Type: []float64 | Type: []float64 | Type: []float64 | Type: []int8 | ++-------------------+--------------------------------------------------------------------------------------------------------+-----------------+-----------------+---------------+ ++-------------------+--------------------------------------------------------------------------------------------------------+-----------------+-----------------+---------------+ + + + +Frame[3] { + "type": "heatmap-cells-sparse" +} +Name: +Dimensions: 5 Fields by 0 Rows ++-------------------+---------------------------------------------------------------------------------------------+-----------------+-----------------+---------------+ +| Name: xMax | Name: yMin | Name: yMax | Name: count | Name: yLayout | +| Labels: | Labels: cluster=dev-us-central-0, job=cortex-dev-01/cortex-gw, route=api_prom_api_v1_labels | Labels: | Labels: | Labels: | +| Type: []time.Time | Type: []float64 | Type: []float64 | Type: []float64 | Type: []int8 | ++-------------------+---------------------------------------------------------------------------------------------+-----------------+-----------------+---------------+ ++-------------------+---------------------------------------------------------------------------------------------+-----------------+-----------------+---------------+ + + + +Frame[4] { + "type": "heatmap-cells-sparse" +} +Name: +Dimensions: 5 Fields by 0 Rows ++-------------------+-----------------------------------------------------------------------------------------------+-----------------+-----------------+---------------+ +| Name: xMax | Name: yMin | Name: yMax | Name: count | Name: yLayout | +| Labels: | Labels: cluster=dev-us-central-0, job=cortex-dev-01/cortex-gw, route=api_prom_api_v1_metadata | Labels: | Labels: | Labels: | +| Type: []time.Time | Type: []float64 | Type: []float64 | Type: []float64 | Type: []int8 | ++-------------------+-----------------------------------------------------------------------------------------------+-----------------+-----------------+---------------+ ++-------------------+-----------------------------------------------------------------------------------------------+-----------------+-----------------+---------------+ + + + +Frame[5] { + "type": "heatmap-cells-sparse" +} +Name: +Dimensions: 5 Fields by 0 Rows ++-------------------+--------------------------------------------------------------------------------------------+-----------------+-----------------+---------------+ +| Name: xMax | Name: yMin | Name: yMax | Name: count | Name: yLayout | +| Labels: | Labels: cluster=dev-us-central-0, job=cortex-dev-01/cortex-gw, route=api_prom_api_v1_query | Labels: | Labels: | Labels: | +| Type: []time.Time | Type: []float64 | Type: []float64 | Type: []float64 | Type: []int8 | ++-------------------+--------------------------------------------------------------------------------------------+-----------------+-----------------+---------------+ ++-------------------+--------------------------------------------------------------------------------------------+-----------------+-----------------+---------------+ + + + +Frame[6] { + "type": "heatmap-cells-sparse" +} +Name: +Dimensions: 5 Fields by 0 Rows ++-------------------+------------------------------------------------------------------------------------------------------+-----------------+-----------------+---------------+ +| Name: xMax | Name: yMin | Name: yMax | Name: count | Name: yLayout | +| Labels: | Labels: cluster=dev-us-central-0, job=cortex-dev-01/cortex-gw, route=api_prom_api_v1_query_exemplars | Labels: | Labels: | Labels: | +| Type: []time.Time | Type: []float64 | Type: []float64 | Type: []float64 | Type: []int8 | ++-------------------+------------------------------------------------------------------------------------------------------+-----------------+-----------------+---------------+ ++-------------------+------------------------------------------------------------------------------------------------------+-----------------+-----------------+---------------+ + + + +Frame[7] { + "type": "heatmap-cells-sparse" +} +Name: +Dimensions: 5 Fields by 0 Rows ++-------------------+--------------------------------------------------------------------------------------------------+-----------------+-----------------+---------------+ +| Name: xMax | Name: yMin | Name: yMax | Name: count | Name: yLayout | +| Labels: | Labels: cluster=dev-us-central-0, job=cortex-dev-01/cortex-gw, route=api_prom_api_v1_query_range | Labels: | Labels: | Labels: | +| Type: []time.Time | Type: []float64 | Type: []float64 | Type: []float64 | Type: []int8 | ++-------------------+--------------------------------------------------------------------------------------------------+-----------------+-----------------+---------------+ ++-------------------+--------------------------------------------------------------------------------------------------+-----------------+-----------------+---------------+ + + + +Frame[8] { + "type": "heatmap-cells-sparse" +} +Name: +Dimensions: 5 Fields by 1 Rows ++-------------------------------+--------------------------------------------------------------------------------------------+----------------------+----------------------+---------------+ +| Name: xMax | Name: yMin | Name: yMax | Name: count | Name: yLayout | +| Labels: | Labels: cluster=dev-us-central-0, job=cortex-dev-01/cortex-gw, route=api_prom_api_v1_rules | Labels: | Labels: | Labels: | +| Type: []time.Time | Type: []float64 | Type: []float64 | Type: []float64 | Type: []int8 | ++-------------------------------+--------------------------------------------------------------------------------------------+----------------------+----------------------+---------------+ +| 2022-04-14 19:08:20 +0000 UTC | 0.05255602595335715 | 0.057312752700291944 | 0.003508784241348215 | 0 | ++-------------------------------+--------------------------------------------------------------------------------------------+----------------------+----------------------+---------------+ + + + +Frame[9] { + "type": "heatmap-cells-sparse" +} +Name: +Dimensions: 5 Fields by 0 Rows ++-------------------+---------------------------------------------------------------------------------------------+-----------------+-----------------+---------------+ +| Name: xMax | Name: yMin | Name: yMax | Name: count | Name: yLayout | +| Labels: | Labels: cluster=dev-us-central-0, job=cortex-dev-01/cortex-gw, route=api_prom_api_v1_series | Labels: | Labels: | Labels: | +| Type: []time.Time | Type: []float64 | Type: []float64 | Type: []float64 | Type: []int8 | ++-------------------+---------------------------------------------------------------------------------------------+-----------------+-----------------+---------------+ ++-------------------+---------------------------------------------------------------------------------------------+-----------------+-----------------+---------------+ + + + +Frame[10] { + "type": "heatmap-cells-sparse" +} +Name: +Dimensions: 5 Fields by 426 Rows ++-------------------------------+------------------------------------------------------------------------------------+-----------------------+-----------------------+---------------+ +| Name: xMax | Name: yMin | Name: yMax | Name: count | Name: yLayout | +| Labels: | Labels: cluster=dev-us-central-0, job=cortex-dev-01/cortex-gw, route=api_prom_push | Labels: | Labels: | Labels: | +| Type: []time.Time | Type: []float64 | Type: []float64 | Type: []float64 | Type: []int8 | ++-------------------------------+------------------------------------------------------------------------------------+-----------------------+-----------------------+---------------+ +| 2022-04-14 19:08:20 +0000 UTC | 0.0013810679320049755 | 0.0015060652591874421 | 0.0035087596183873042 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.0015060652591874421 | 0.001642375811042411 | 0.02105265620208107 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.001642375811042411 | 0.0017910235218841233 | 0.03508778085595028 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.0017910235218841233 | 0.001953125 | 0.09473695290949442 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.001953125 | 0.0021298979153618314 | 0.11228089873902361 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.0021298979153618314 | 0.0023226701464896895 | 0.16491241612920574 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.0023226701464896895 | 0.002532889755177753 | 0.12982470914248379 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.002532889755177753 | 0.002762135864009951 | 0.16842120037107233 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.002762135864009951 | 0.0030121305183748843 | 0.30175469375429953 | 0 | +| ... | ... | ... | ... | ... | ++-------------------------------+------------------------------------------------------------------------------------+-----------------------+-----------------------+---------------+ + + + +Frame[11] { + "type": "heatmap-cells-sparse" +} +Name: +Dimensions: 5 Fields by 1 Rows ++-------------------------------+-------------------------------------------------------------------------------------+--------------------+-----------------------+---------------+ +| Name: xMax | Name: yMin | Name: yMax | Name: count | Name: yLayout | +| Labels: | Labels: cluster=dev-us-central-0, job=cortex-dev-01/cortex-gw, route=api_prom_rules | Labels: | Labels: | Labels: | +| Type: []time.Time | Type: []float64 | Type: []float64 | Type: []float64 | Type: []int8 | ++-------------------------------+-------------------------------------------------------------------------------------+--------------------+-----------------------+---------------+ +| 2022-04-14 19:08:20 +0000 UTC | 1 | 1.0905077326652577 | 0.0035087596183873042 | 0 | ++-------------------------------+-------------------------------------------------------------------------------------+--------------------+-----------------------+---------------+ + + + +Frame[12] { + "type": "heatmap-cells-sparse" +} +Name: +Dimensions: 5 Fields by 6 Rows ++-------------------------------+-----------------------------------------------------------------------------------+--------------------+----------------------+---------------+ +| Name: xMax | Name: yMin | Name: yMax | Name: count | Name: yLayout | +| Labels: | Labels: cluster=dev-us-central-0, job=cortex-dev-01/cortex-gw, route=api_v1_rules | Labels: | Labels: | Labels: | +| Type: []time.Time | Type: []float64 | Type: []float64 | Type: []float64 | Type: []int8 | ++-------------------------------+-----------------------------------------------------------------------------------+--------------------+----------------------+---------------+ +| 2022-04-14 19:10:00 +0000 UTC | 0.8408964152537144 | 0.9170040432046711 | 0.003466771241830066 | 0 | +| 2022-04-14 19:10:00 +0000 UTC | 1 | 1.0905077326652577 | 0.003474313725490196 | 0 | +| 2022-04-14 19:11:40 +0000 UTC | 0.8408964152537144 | 0.9170040432046711 | 0.003508771929824561 | 0 | +| 2022-04-14 19:11:40 +0000 UTC | 1 | 1.0905077326652577 | 0.003508771929824561 | 0 | +| 2022-04-14 19:13:20 +0000 UTC | 0.8408964152537144 | 0.9170040432046711 | 0.003508771929824561 | 0 | +| 2022-04-14 19:13:20 +0000 UTC | 1 | 1.0905077326652577 | 0.003508771929824561 | 0 | ++-------------------------------+-----------------------------------------------------------------------------------+--------------------+----------------------+---------------+ + + + +Frame[13] { + "type": "heatmap-cells-sparse" +} +Name: +Dimensions: 5 Fields by 269 Rows ++-------------------------------+---------------------------------------------------------------------------+------------------------+--------------------+---------------+ +| Name: xMax | Name: yMin | Name: yMax | Name: count | Name: yLayout | +| Labels: | Labels: cluster=dev-us-central-0, job=cortex-dev-01/cortex-gw, route=root | Labels: | Labels: | Labels: | +| Type: []time.Time | Type: []float64 | Type: []float64 | Type: []float64 | Type: []int8 | ++-------------------------------+---------------------------------------------------------------------------+------------------------+--------------------+---------------+ +| 2022-04-14 19:08:20 +0000 UTC | 4.536465129862675e-06 | 4.947050303081549e-06 | 0.0912281686682326 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 4.947050303081549e-06 | 5.394796609394436e-06 | 1.5052655709601983 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 5.394796609394436e-06 | 5.883067418700946e-06 | 3.687721957559951 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 5.883067418700946e-06 | 6.415530511884418e-06 | 3.936844149003299 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 6.415530511884418e-06 | 6.9961856323598564e-06 | 3.140353893534075 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 6.9961856323598564e-06 | 7.62939453125e-06 | 3.4491272391832517 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 7.62939453125e-06 | 8.319913731882154e-06 | 3.53333777780927 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 8.319913731882154e-06 | 9.07293025972535e-06 | 3.4947421237616973 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 9.07293025972535e-06 | 9.894100606163098e-06 | 3.533338799658994 | 0 | +| ... | ... | ... | ... | ... | ++-------------------------------+---------------------------------------------------------------------------+------------------------+--------------------+---------------+ + + + +Frame[14] { + "type": "heatmap-cells-sparse" +} +Name: +Dimensions: 5 Fields by 303 Rows ++-------------------------------+-----------------------------------------------------------------------------------------------------------------+-----------------------+----------------------+---------------+ +| Name: xMax | Name: yMin | Name: yMax | Name: count | Name: yLayout | +| Labels: | Labels: cluster=dev-us-central-0, job=cortex-dev-01/cortex-gw-internal, route=api_prom_api_v1_label_name_values | Labels: | Labels: | Labels: | +| Type: []time.Time | Type: []float64 | Type: []float64 | Type: []float64 | Type: []int8 | ++-------------------------------+-----------------------------------------------------------------------------------------------------------------+-----------------------+----------------------+---------------+ +| 2022-04-14 19:08:20 +0000 UTC | 0.002532889755177753 | 0.002762135864009951 | 0.007017543859649122 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.002762135864009951 | 0.0030121305183748843 | 0.014035087719298244 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.0030121305183748843 | 0.003284751622084822 | 0.04912280701754385 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.003284751622084822 | 0.0035820470437682465 | 0.02105261926751011 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.0035820470437682465 | 0.00390625 | 0.04210522622358295 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.00390625 | 0.004259795830723663 | 0.049122782394669336 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.004259795830723663 | 0.004645340292979379 | 0.02807017543859649 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.004645340292979379 | 0.005065779510355506 | 0.03859646660519566 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.005065779510355506 | 0.005524271728019902 | 0.06666662973235489 | 0 | +| ... | ... | ... | ... | ... | ++-------------------------------+-----------------------------------------------------------------------------------------------------------------+-----------------------+----------------------+---------------+ + + + +Frame[15] { + "type": "heatmap-cells-sparse" +} +Name: +Dimensions: 5 Fields by 56 Rows ++-------------------------------+------------------------------------------------------------------------------------------------------+-----------------------+-----------------------+---------------+ +| Name: xMax | Name: yMin | Name: yMax | Name: count | Name: yLayout | +| Labels: | Labels: cluster=dev-us-central-0, job=cortex-dev-01/cortex-gw-internal, route=api_prom_api_v1_labels | Labels: | Labels: | Labels: | +| Type: []time.Time | Type: []float64 | Type: []float64 | Type: []float64 | Type: []int8 | ++-------------------------------+------------------------------------------------------------------------------------------------------+-----------------------+-----------------------+---------------+ +| 2022-04-14 19:08:20 +0000 UTC | 0.004645340292979379 | 0.005065779510355506 | 0.007017531548211864 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.005065779510355506 | 0.005524271728019902 | 0.003508771929824561 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.005524271728019902 | 0.0060242610367497685 | 0.010526315789473682 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.009290680585958758 | 0.010131559020711013 | 0.0035087596183873034 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.0340783666457893 | 0.03716272234383503 | 0.003508771929824561 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.03716272234383503 | 0.04052623608284405 | 0.003508771929824561 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.04052623608284405 | 0.044194173824159216 | 0.0035087596183873034 | 0 | +| 2022-04-14 19:10:00 +0000 UTC | 0.005065779510355506 | 0.005524271728019902 | 0.0035339861111111114 | 0 | +| 2022-04-14 19:10:00 +0000 UTC | 0.005524271728019902 | 0.0060242610367497685 | 0.00713925 | 0 | +| ... | ... | ... | ... | ... | ++-------------------------------+------------------------------------------------------------------------------------------------------+-----------------------+-----------------------+---------------+ + + + +Frame[16] { + "type": "heatmap-cells-sparse" +} +Name: +Dimensions: 5 Fields by 41 Rows ++-------------------------------+-----------------------------------------------------------------------------------------------------+-----------------------+-----------------------+---------------+ +| Name: xMax | Name: yMin | Name: yMax | Name: count | Name: yLayout | +| Labels: | Labels: cluster=dev-us-central-0, job=cortex-dev-01/cortex-gw-internal, route=api_prom_api_v1_query | Labels: | Labels: | Labels: | +| Type: []time.Time | Type: []float64 | Type: []float64 | Type: []float64 | Type: []int8 | ++-------------------------------+-----------------------------------------------------------------------------------------------------+-----------------------+-----------------------+---------------+ +| 2022-04-14 19:08:20 +0000 UTC | 0.005524271728019902 | 0.0060242610367497685 | 0.007017531548211864 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.0060242610367497685 | 0.006569503244169644 | 0.0035087596183873034 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.006569503244169644 | 0.007164094087536493 | 0 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.007164094087536493 | 0.0078125 | 0.003508771929824561 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.0078125 | 0.008519591661447326 | 0 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.008519591661447326 | 0.009290680585958758 | 0.0035087596183873034 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.1621049443313762 | 0.17677669529663687 | 0.003508771929824561 | 0 | +| 2022-04-14 19:10:00 +0000 UTC | 0.005524271728019902 | 0.0060242610367497685 | 0.0035300277777777778 | 0 | +| 2022-04-14 19:10:00 +0000 UTC | 0.0060242610367497685 | 0.006569503244169644 | 0.0035300277777777778 | 0 | +| ... | ... | ... | ... | ... | ++-------------------------------+-----------------------------------------------------------------------------------------------------+-----------------------+-----------------------+---------------+ + + + +Frame[17] { + "type": "heatmap-cells-sparse" +} +Name: +Dimensions: 5 Fields by 29 Rows ++-------------------------------+-----------------------------------------------------------------------------------------------------------+----------------------+-----------------------+---------------+ +| Name: xMax | Name: yMin | Name: yMax | Name: count | Name: yLayout | +| Labels: | Labels: cluster=dev-us-central-0, job=cortex-dev-01/cortex-gw-internal, route=api_prom_api_v1_query_range | Labels: | Labels: | Labels: | +| Type: []time.Time | Type: []float64 | Type: []float64 | Type: []float64 | Type: []int8 | ++-------------------------------+-----------------------------------------------------------------------------------------------------------+----------------------+-----------------------+---------------+ +| 2022-04-14 19:08:20 +0000 UTC | 0.009290680585958758 | 0.010131559020711013 | 0.003508771929824561 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.010131559020711013 | 0.011048543456039804 | 0.007017519236774607 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.018581361171917516 | 0.020263118041422026 | 0.003508771929824561 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.044194173824159216 | 0.04819408829399815 | 0.003508771929824561 | 0 | +| 2022-04-14 19:10:00 +0000 UTC | 0.010131559020711013 | 0.011048543456039804 | 0.0070600555555555555 | 0 | +| 2022-04-14 19:10:00 +0000 UTC | 0.044194173824159216 | 0.04819408829399815 | 0.0035339861111111114 | 0 | +| 2022-04-14 19:10:00 +0000 UTC | 0.17677669529663687 | 0.1927763531759926 | 0.0035300277777777778 | 0 | +| 2022-04-14 19:11:40 +0000 UTC | 0.010131559020711013 | 0.011048543456039804 | 0.003508771929824561 | 0 | +| 2022-04-14 19:11:40 +0000 UTC | 0.04052623608284405 | 0.044194173824159216 | 0.003508771929824561 | 0 | +| ... | ... | ... | ... | ... | ++-------------------------------+-----------------------------------------------------------------------------------------------------------+----------------------+-----------------------+---------------+ + + + +Frame[18] { + "type": "heatmap-cells-sparse" +} +Name: +Dimensions: 5 Fields by 38 Rows ++-------------------------------+------------------------------------------------------------------------------------------------------+----------------------+-----------------------+---------------+ +| Name: xMax | Name: yMin | Name: yMax | Name: count | Name: yLayout | +| Labels: | Labels: cluster=dev-us-central-0, job=cortex-dev-01/cortex-gw-internal, route=api_prom_api_v1_series | Labels: | Labels: | Labels: | +| Type: []time.Time | Type: []float64 | Type: []float64 | Type: []float64 | Type: []int8 | ++-------------------------------+------------------------------------------------------------------------------------------------------+----------------------+-----------------------+---------------+ +| 2022-04-14 19:08:20 +0000 UTC | 0.006569503244169644 | 0.007164094087536493 | 0.007017531548211864 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.007164094087536493 | 0.0078125 | 0 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.0078125 | 0.008519591661447326 | 0.0035087596183873034 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.024097044146999074 | 0.026278012976678575 | 0.003508771929824561 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.04052623608284405 | 0.044194173824159216 | 0.003508771929824561 | 0 | +| 2022-04-14 19:10:00 +0000 UTC | 0.0078125 | 0.008519591661447326 | 0.0035300277777777778 | 0 | +| 2022-04-14 19:10:00 +0000 UTC | 0.009290680585958758 | 0.010131559020711013 | 0.0035339861111111114 | 0 | +| 2022-04-14 19:10:00 +0000 UTC | 0.024097044146999074 | 0.026278012976678575 | 0.007103611111111111 | 0 | +| 2022-04-14 19:11:40 +0000 UTC | 0.0060242610367497685 | 0.006569503244169644 | 0.003508771929824561 | 0 | +| ... | ... | ... | ... | ... | ++-------------------------------+------------------------------------------------------------------------------------------------------+----------------------+-----------------------+---------------+ + + + +Frame[19] { + "type": "heatmap-cells-sparse" +} +Name: +Dimensions: 5 Fields by 195 Rows ++-------------------------------+---------------------------------------------------------------------------------------------+-----------------------+----------------------+---------------+ +| Name: xMax | Name: yMin | Name: yMax | Name: count | Name: yLayout | +| Labels: | Labels: cluster=dev-us-central-0, job=cortex-dev-01/cortex-gw-internal, route=api_prom_push | Labels: | Labels: | Labels: | +| Type: []time.Time | Type: []float64 | Type: []float64 | Type: []float64 | Type: []int8 | ++-------------------------------+---------------------------------------------------------------------------------------------+-----------------------+----------------------+---------------+ +| 2022-04-14 19:08:20 +0000 UTC | 0.0010649489576809157 | 0.0011613350732448448 | 0.003508771929824561 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.0011613350732448448 | 0.0012664448775888766 | 0 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.0012664448775888766 | 0.0013810679320049755 | 0.01754383502624829 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.0013810679320049755 | 0.0015060652591874421 | 0.02105261926751011 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.0015060652591874421 | 0.001642375811042411 | 0.02807015081572197 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.001642375811042411 | 0.0017910235218841233 | 0.042105189289271185 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.0017910235218841233 | 0.001953125 | 0.05964904893839399 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.001953125 | 0.0021298979153618314 | 0.056140289320006684 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.0021298979153618314 | 0.0023226701464896895 | 0.07368416128056675 | 0 | +| ... | ... | ... | ... | ... | ++-------------------------------+---------------------------------------------------------------------------------------------+-----------------------+----------------------+---------------+ + + + +Frame[20] { + "type": "heatmap-cells-sparse" +} +Name: +Dimensions: 5 Fields by 261 Rows ++-------------------------------+-------------------------------------------------------------------------------------------+-----------------------+-----------------------+---------------+ +| Name: xMax | Name: yMin | Name: yMax | Name: count | Name: yLayout | +| Labels: | Labels: cluster=dev-us-central-0, job=cortex-dev-01/cortex-gw-internal, route=api_v1_push | Labels: | Labels: | Labels: | +| Type: []time.Time | Type: []float64 | Type: []float64 | Type: []float64 | Type: []int8 | ++-------------------------------+-------------------------------------------------------------------------------------------+-----------------------+-----------------------+---------------+ +| 2022-04-14 19:08:20 +0000 UTC | 0.00048828125 | 0.0005324744788404579 | 0.0035087596183873034 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.0005324744788404579 | 0.0005806675366224224 | 0.0035087596183873034 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.0005806675366224224 | 0.0006332224387944383 | 0.024561354263022896 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.0006332224387944383 | 0.0006905339660024878 | 0.056140252385694915 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.0006905339660024878 | 0.0007530326295937211 | 0.056140252385694915 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.0007530326295937211 | 0.0008211879055212055 | 0.0666665681751686 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.0008211879055212055 | 0.0008955117609420616 | 0.07368408741194321 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.0008955117609420616 | 0.0009765625 | 0.04912274546035757 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.0009765625 | 0.0010649489576809157 | 0.03508765774105932 | 0 | +| ... | ... | ... | ... | ... | ++-------------------------------+-------------------------------------------------------------------------------------------+-----------------------+-----------------------+---------------+ + + + +Frame[21] { + "type": "heatmap-cells-sparse" +} +Name: +Dimensions: 5 Fields by 176 Rows ++-------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+-----------------------+---------------+ +| Name: xMax | Name: yMin | Name: yMax | Name: count | Name: yLayout | +| Labels: | Labels: cluster=dev-us-central-0, job=cortex-dev-01/cortex-gw-internal, route=prometheus_api_v1_query | Labels: | Labels: | Labels: | +| Type: []time.Time | Type: []float64 | Type: []float64 | Type: []float64 | Type: []int8 | ++-------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+-----------------------+---------------+ +| 2022-04-14 19:08:20 +0000 UTC | 0.004645340292979379 | 0.005065779510355506 | 0.014035075407860986 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.005065779510355506 | 0.005524271728019902 | 0.010526291166599169 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.005524271728019902 | 0.0060242610367497685 | 0.04561398584197026 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.0060242610367497685 | 0.006569503244169644 | 0.014035087719298244 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.006569503244169644 | 0.007164094087536493 | 0 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.007164094087536493 | 0.0078125 | 0.014035087719298244 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.0078125 | 0.008519591661447326 | 0.0035087596183873034 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.008519591661447326 | 0.009290680585958758 | 0.007017543859649122 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.009290680585958758 | 0.010131559020711013 | 0.003508771929824561 | 0 | +| ... | ... | ... | ... | ... | ++-------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+-----------------------+---------------+ + + + +Frame[22] { + "type": "heatmap-cells-sparse" +} +Name: +Dimensions: 5 Fields by 255 Rows ++-------------------------------+-------------------------------------------------------------------------------------------------------------+-----------------------+----------------------+---------------+ +| Name: xMax | Name: yMin | Name: yMax | Name: count | Name: yLayout | +| Labels: | Labels: cluster=dev-us-central-0, job=cortex-dev-01/cortex-gw-internal, route=prometheus_api_v1_query_range | Labels: | Labels: | Labels: | +| Type: []time.Time | Type: []float64 | Type: []float64 | Type: []float64 | Type: []int8 | ++-------------------------------+-------------------------------------------------------------------------------------------------------------+-----------------------+----------------------+---------------+ +| 2022-04-14 19:08:20 +0000 UTC | 0.005065779510355506 | 0.005524271728019902 | 0.007017543859649122 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.005524271728019902 | 0.0060242610367497685 | 0.007017543859649122 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.0060242610367497685 | 0.006569503244169644 | 0.003508771929824561 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.006569503244169644 | 0.007164094087536493 | 0.003508771929824561 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.011048543456039804 | 0.012048522073499537 | 0.003508771929824561 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.03125 | 0.0340783666457893 | 0.003508771929824561 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.0340783666457893 | 0.03716272234383503 | 0.007017543859649122 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.03716272234383503 | 0.04052623608284405 | 0 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 0.04052623608284405 | 0.044194173824159216 | 0 | 0 | +| ... | ... | ... | ... | ... | ++-------------------------------+-------------------------------------------------------------------------------------------------------------+-----------------------+----------------------+---------------+ + + + +Frame[23] { + "type": "heatmap-cells-sparse" +} +Name: +Dimensions: 5 Fields by 167 Rows ++-------------------------------+------------------------------------------------------------------------------------+------------------------+-----------------------+---------------+ +| Name: xMax | Name: yMin | Name: yMax | Name: count | Name: yLayout | +| Labels: | Labels: cluster=dev-us-central-0, job=cortex-dev-01/cortex-gw-internal, route=root | Labels: | Labels: | Labels: | +| Type: []time.Time | Type: []float64 | Type: []float64 | Type: []float64 | Type: []int8 | ++-------------------------------+------------------------------------------------------------------------------------+------------------------+-----------------------+---------------+ +| 2022-04-14 19:08:20 +0000 UTC | 5.883067418700946e-06 | 6.415530511884418e-06 | 0.0035087596183873034 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 6.415530511884418e-06 | 6.9961856323598564e-06 | 0 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 6.9961856323598564e-06 | 7.62939453125e-06 | 0 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 7.62939453125e-06 | 8.319913731882154e-06 | 0.0035087596183873034 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 8.319913731882154e-06 | 9.07293025972535e-06 | 0.052631517390182125 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 9.07293025972535e-06 | 9.894100606163098e-06 | 0.17894720837236824 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 9.894100606163098e-06 | 1.0789593218788871e-05 | 0.13684190828016174 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 1.0789593218788871e-05 | 1.1766134837401892e-05 | 0.1192980609424762 | 0 | +| 2022-04-14 19:08:20 +0000 UTC | 1.1766134837401892e-05 | 1.2831061023768835e-05 | 0.1578945767934209 | 0 | +| ... | ... | ... | ... | ... | ++-------------------------------+------------------------------------------------------------------------------------+------------------------+-----------------------+---------------+ + + +====== TEST DATA RESPONSE (arrow base64) ====== +FRAME=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 +FRAME=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 +FRAME=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 +FRAME=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 +FRAME=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 +FRAME=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 +FRAME=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 +FRAME=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 +FRAME=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 +FRAME=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 +FRAME=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JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYA2LfX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 +FRAME=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 +FRAME=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 +FRAME=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ADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpG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 +FRAME=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 +FRAME=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 +FRAME=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 +FRAME=QVJST1cxAAD/////YAMAABAAAAAAAAoADgAMAAsABAAKAAAAFAAAAAAAAAEEAAoADAAAAAgABAAKAAAACAAAAJAAAAADAAAATAAAACgAAAAEAAAAMP3//wgAAAAMAAAAAAAAAAAAAAAFAAAAcmVmSWQAAABQ/f//CAAAAAwAAAAAAAAAAAAAAAQAAABuYW1lAAAAAHD9//8IAAAAKAAAAB8AAAB7InR5cGUiOiJoZWF0bWFwLWNlbGxzLXNwYXJzZSJ9AAQAAABtZXRhAAAAAAUAAAAwAgAAMAEAANAAAABwAAAABAAAAPb9//8UAAAAPAAAAEQAAAAAAAACSAAAAAEAAAAEAAAA5P3//wgAAAAQAAAABwAAAHlMYXlvdXQABAAAAG5hbWUAAAAAAAAAAAgADAAIAAcACAAAAAAAAAEIAAAABwAAAHlMYXlvdXQAXv7//xQAAAA8AAAAPAAAAAAAAAM8AAAAAQAAAAQAAABM/v//CAAAABAAAAAFAAAAY291bnQAAAAEAAAAbmFtZQAAAAAAAAAAQv7//wAAAgAFAAAAY291bnQAAAC6/v//FAAAADwAAAA8AAAAAAAAAzwAAAABAAAABAAAAKj+//8IAAAAEAAAAAQAAAB5TWF4AAAAAAQAAABuYW1lAAAAAAAAAACe/v//AAACAAQAAAB5TWF4AAAAABb///8UAAAAzAAAAMwAAAAAAAADzAAAAAIAAAAsAAAABAAAAAj///8IAAAAEAAAAAQAAAB5TWluAAAAAAQAAABuYW1lAAAAACz///8IAAAAeAAAAG0AAAB7ImNsdXN0ZXIiOiJkZXYtdXMtY2VudHJhbC0wIiwiam9iIjoiY29ydGV4LWRldi0wMS9jb3J0ZXgtZ3ctaW50ZXJuYWwiLCJyb3V0ZSI6ImFwaV9wcm9tX2FwaV92MV9xdWVyeV9yYW5nZSJ9AAAABgAAAGxhYmVscwAAAAAAAIr///8AAAIABAAAAHlNaW4AABIAGAAUAAAAEwAMAAAACAAEABIAAAAUAAAARAAAAEwAAAAAAAAKTAAAAAEAAAAMAAAACAAMAAgABAAIAAAACAAAABAAAAAEAAAAeE1heAAAAAAEAAAAbmFtZQAAAAAAAAAAAAAGAAgABgAGAAAAAAADAAQAAAB4TWF4AAAAAP////9IAQAAFAAAAAAAAAAMABYAFAATAAwABAAMAAAAwAMAAAAAAAAUAAAAAAAAAwQACgAYAAwACAAEAAoAAAAUAAAAuAAAAB0AAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADoAAAAAAAAAOgAAAAAAAAAAAAAAAAAAADoAAAAAAAAAOgAAAAAAAAA0AEAAAAAAAAAAAAAAAAAANABAAAAAAAA6AAAAAAAAAC4AgAAAAAAAAAAAAAAAAAAuAIAAAAAAADoAAAAAAAAAKADAAAAAAAAAAAAAAAAAACgAwAAAAAAAB0AAAAAAAAAAAAAAAUAAAAdAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAABo7iTh2OUWAGjuJOHY5RYAaO4k4djlFgBo7iTh2OUWAFBlbfjY5RYAUGVt+NjlFgBQZW342OUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYA8ECPVdnlFgDwQI9V2eUWAPBAj1XZ5RYA8ECPVdnlFgDYt9ds2eUWANi312zZ5RYA2LfXbNnlFgDYt9ds2eUWANi312zZ5RYVtzEK/gaDPycqNtXav4Q/FbcxCv4Gkz/MO39mnqCmPycqNtXav4Q/zDt/Zp6gpj/MO39mnqDGPycqNtXav4Q/Jyo21dq/pD/MO39mnqCmP8w7f2aeoMY/Jyo21dq/hD8nKjbV2r+kPxW3MQr+BrM/zDt/Zp6gxj8VtzEK/gaDPycqNtXav4Q/Jyo21dq/pD8VtzEK/gazP9ugKkLlrNg/FbcxCv4Ggz8nKjbV2r+EPxW3MQr+BrM/26AqQuWs2D8VtzEK/gaDPycqNtXav4Q/zDt/Zp6ghj8nKjbV2r+kP9ugKkLlrNg/Jyo21dq/hD/MO39mnqCGPycqNtXav5Q/26AqQuWsqD/MO39mnqCGP9ugKkLlrKg/26AqQuWsyD/MO39mnqCGP8w7f2aeoKY/26AqQuWsqD/boCpC5azIP8w7f2aeoIY/zDt/Zp6gpj8nKjbV2r+0P9ugKkLlrMg/Jyo21dq/hD/MO39mnqCGP8w7f2aeoKY/Jyo21dq/tD+s01qZn+jaPycqNtXav4Q/zDt/Zp6ghj8nKjbV2r+0P6zTWpmf6No/Jyo21dq/hD/MO39mnqCGP9ugKkLlrIg/zDt/Zp6gpj+s01qZn+jaP+bLAZZtvmw/aJvv+Wa+fD/mywGWbb5sP+bLAZZtvmw/AD+BOwHrfD8FGbJYTvNsPwA/gTsB62w/5ssBlm2+bD/mywGWbb5sP+bLAZZtvmw/5ssBlm2+bD/mywGWbb58P+bLAZZtvmw/5ssBlm2+bD/mywGWbb5sP+bLAZZtvmw/5ssBlm2+bD/mywGWbb5sP+bLAZZtvmw/5ssBlm2+bD/mywGWbb5sP+bLAZZtvmw/5ssBlm2+bD/mywGWbb5sP+bLAZZtvmw/5ssBlm2+bD/mywGWbb5sP+bLAZZtvmw/5ssBlm2+bD8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAMABQAEgAMAAgABAAMAAAAEAAAACwAAAA8AAAAAAAEAAEAAABwAwAAAAAAAFABAAAAAAAAwAMAAAAAAAAAAAAAAAAAAAAAAAAAAAoADAAAAAgABAAKAAAACAAAAJAAAAADAAAATAAAACgAAAAEAAAAMP3//wgAAAAMAAAAAAAAAAAAAAAFAAAAcmVmSWQAAABQ/f//CAAAAAwAAAAAAAAAAAAAAAQAAABuYW1lAAAAAHD9//8IAAAAKAAAAB8AAAB7InR5cGUiOiJoZWF0bWFwLWNlbGxzLXNwYXJzZSJ9AAQAAABtZXRhAAAAAAUAAAAwAgAAMAEAANAAAABwAAAABAAAAPb9//8UAAAAPAAAAEQAAAAAAAACSAAAAAEAAAAEAAAA5P3//wgAAAAQAAAABwAAAHlMYXlvdXQABAAAAG5hbWUAAAAAAAAAAAgADAAIAAcACAAAAAAAAAEIAAAABwAAAHlMYXlvdXQAXv7//xQAAAA8AAAAPAAAAAAAAAM8AAAAAQAAAAQAAABM/v//CAAAABAAAAAFAAAAY291bnQAAAAEAAAAbmFtZQAAAAAAAAAAQv7//wAAAgAFAAAAY291bnQAAAC6/v//FAAAADwAAAA8AAAAAAAAAzwAAAABAAAABAAAAKj+//8IAAAAEAAAAAQAAAB5TWF4AAAAAAQAAABuYW1lAAAAAAAAAACe/v//AAACAAQAAAB5TWF4AAAAABb///8UAAAAzAAAAMwAAAAAAAADzAAAAAIAAAAsAAAABAAAAAj///8IAAAAEAAAAAQAAAB5TWluAAAAAAQAAABuYW1lAAAAACz///8IAAAAeAAAAG0AAAB7ImNsdXN0ZXIiOiJkZXYtdXMtY2VudHJhbC0wIiwiam9iIjoiY29ydGV4LWRldi0wMS9jb3J0ZXgtZ3ctaW50ZXJuYWwiLCJyb3V0ZSI6ImFwaV9wcm9tX2FwaV92MV9xdWVyeV9yYW5nZSJ9AAAABgAAAGxhYmVscwAAAAAAAIr///8AAAIABAAAAHlNaW4AABIAGAAUAAAAEwAMAAAACAAEABIAAAAUAAAARAAAAEwAAAAAAAAKTAAAAAEAAAAMAAAACAAMAAgABAAIAAAACAAAABAAAAAEAAAAeE1heAAAAAAEAAAAbmFtZQAAAAAAAAAAAAAGAAgABgAGAAAAAAADAAQAAAB4TWF4AAAAAJADAABBUlJPVzE= +FRAME=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 +FRAME=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 +FRAME=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 +FRAME=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 +FRAME=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ADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAONy1D9nlFgA43LUP2eUWADjctQ/Z5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAgU/4m2eUWACBT/ibZ5RYAIFP+JtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpGPtnlFgAIykY+2eUWAAjKRj7Z5RYACMpG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 +FRAME=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 diff --git a/pkg/util/converter/testdata/prom-matrix-wide-frame.json b/pkg/util/converter/testdata/prom-matrix-wide-frame.json new file mode 100644 index 00000000000..13cc8f1e560 --- /dev/null +++ b/pkg/util/converter/testdata/prom-matrix-wide-frame.json @@ -0,0 +1,62 @@ +{ + "frames": [ + { + "schema": { + "meta": { + "type": "timeseries-wide", + "custom": { + "resultType": "matrix" + } + }, + "fields": [ + { + "name": "Time", + "type": "time", + "typeInfo": { + "frame": "time.Time" + } + }, + { + "name": "Value", + "type": "number", + "typeInfo": { + "frame": "float64", + "nullable": true + }, + "labels": { + "__name__": "up", + "instance": "localhost:9090", + "job": "prometheus" + } + }, + { + "name": "Value", + "type": "number", + "typeInfo": { + "frame": "float64", + "nullable": true + }, + "labels": { + "__name__": "up", + "instance": "localhost:9091", + "job": "node" + } + } + ] + }, + "data": { + "values": [ + [ + 1435781430781,1435781445781,1435781460781 + ], + [ + 1,1,1 + ], + [ + 0,0,1 + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/pkg/util/converter/testdata/prom-matrix-wide-golden.txt b/pkg/util/converter/testdata/prom-matrix-wide-golden.txt new file mode 100644 index 00000000000..4a22daa0195 --- /dev/null +++ b/pkg/util/converter/testdata/prom-matrix-wide-golden.txt @@ -0,0 +1,23 @@ +🌟 This was machine generated. Do not edit. 🌟 + +Frame[0] { + "type": "timeseries-wide", + "custom": { + "resultType": "matrix" + } +} +Name: +Dimensions: 3 Fields by 3 Rows ++-----------------------------------+--------------------------------------------------------------+--------------------------------------------------------+ +| Name: Time | Name: Value | Name: Value | +| Labels: | Labels: __name__=up, instance=localhost:9090, job=prometheus | Labels: __name__=up, instance=localhost:9091, job=node | +| Type: []time.Time | Type: []*float64 | Type: []*float64 | ++-----------------------------------+--------------------------------------------------------------+--------------------------------------------------------+ +| 2015-07-01 20:10:30.781 +0000 UTC | 1 | 0 | +| 2015-07-01 20:10:45.781 +0000 UTC | 1 | 0 | +| 2015-07-01 20:11:00.781 +0000 UTC | 1 | 1 | ++-----------------------------------+--------------------------------------------------------------+--------------------------------------------------------+ + + +====== TEST DATA RESPONSE (arrow base64) ====== +FRAME=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 diff --git a/pkg/util/converter/testdata/prom-matrix-with-nans-wide-frame.json b/pkg/util/converter/testdata/prom-matrix-with-nans-wide-frame.json new file mode 100644 index 00000000000..c2ad842fdb1 --- /dev/null +++ b/pkg/util/converter/testdata/prom-matrix-with-nans-wide-frame.json @@ -0,0 +1,59 @@ +{ + "frames": [ + { + "schema": { + "meta": { + "type": "timeseries-wide", + "custom": { + "resultType": "matrix" + } + }, + "fields": [ + { + "name": "Time", + "type": "time", + "typeInfo": { + "frame": "time.Time" + } + }, + { + "name": "Value", + "type": "number", + "typeInfo": { + "frame": "float64", + "nullable": true + }, + "labels": { + "handler": "/api/v1/query_range", + "job": "prometheus" + } + } + ] + }, + "data": { + "values": [ + [ + 1641889530000,1641889531000,1641889532000 + ], + [ + null,null,null + ] + ], + "entities": [ + null, + { + "NaN": [ + 1 + ], + "Inf": [ + 0 + ], + "NegInf": [ + 2 + ] + } + ] + } + } + ] +} \ No newline at end of file diff --git a/pkg/util/converter/testdata/prom-matrix-with-nans-wide-golden.txt b/pkg/util/converter/testdata/prom-matrix-with-nans-wide-golden.txt new file mode 100644 index 00000000000..c5c3c77bb3d --- /dev/null +++ b/pkg/util/converter/testdata/prom-matrix-with-nans-wide-golden.txt @@ -0,0 +1,23 @@ +🌟 This was machine generated. Do not edit. 🌟 + +Frame[0] { + "type": "timeseries-wide", + "custom": { + "resultType": "matrix" + } +} +Name: +Dimensions: 2 Fields by 3 Rows ++-------------------------------+-----------------------------------------------------+ +| Name: Time | Name: Value | +| Labels: | Labels: handler=/api/v1/query_range, job=prometheus | +| Type: []time.Time | Type: []*float64 | ++-------------------------------+-----------------------------------------------------+ +| 2022-01-11 08:25:30 +0000 UTC | +Inf | +| 2022-01-11 08:25:31 +0000 UTC | NaN | +| 2022-01-11 08:25:32 +0000 UTC | -Inf | ++-------------------------------+-----------------------------------------------------+ + + +====== TEST DATA RESPONSE (arrow base64) ====== +FRAME=QVJST1cxAAD/////MAIAABAAAAAAAAoADgAMAAsABAAKAAAAFAAAAAAAAAEEAAoADAAAAAgABAAKAAAACAAAAKwAAAADAAAATAAAACgAAAAEAAAAZP7//wgAAAAMAAAAAAAAAAAAAAAFAAAAcmVmSWQAAACE/v//CAAAAAwAAAAAAAAAAAAAAAQAAABuYW1lAAAAAKT+//8IAAAARAAAADsAAAB7InR5cGUiOiJ0aW1lc2VyaWVzLXdpZGUiLCJjdXN0b20iOnsicmVzdWx0VHlwZSI6Im1hdHJpeCJ9fQAEAAAAbWV0YQAAAAACAAAA4AAAABgAAAAAABIAGAAUABMAEgAMAAAACAAEABIAAAAUAAAAlAAAAJQAAAAAAAMBlAAAAAIAAAAsAAAABAAAAED///8IAAAAEAAAAAUAAABWYWx1ZQAAAAQAAABuYW1lAAAAAGT///8IAAAAQAAAADQAAAB7ImhhbmRsZXIiOiIvYXBpL3YxL3F1ZXJ5X3JhbmdlIiwiam9iIjoicHJvbWV0aGV1cyJ9AAAAAAYAAABsYWJlbHMAAAAAAACK////AAACAAUAAABWYWx1ZQASABgAFAAAABMADAAAAAgABAASAAAAFAAAAEQAAABMAAAAAAAACkwAAAABAAAADAAAAAgADAAIAAQACAAAAAgAAAAQAAAABAAAAFRpbWUAAAAABAAAAG5hbWUAAAAAAAAAAAAABgAIAAYABgAAAAAAAwAEAAAAVGltZQAAAAAAAAAA/////7gAAAAUAAAAAAAAAAwAFgAUABMADAAEAAwAAAAwAAAAAAAAABQAAAAAAAADBAAKABgADAAIAAQACgAAABQAAABYAAAAAwAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAGAAAAAAAAAAAAAAAAgAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAEQVFNQpyRYADrBP1CnJFgDYSovUKckWAAAAAAAA8H8BAAAAAAD4fwAAAAAAAPD/EAAAAAwAFAASAAwACAAEAAwAAAAQAAAALAAAADgAAAAAAAQAAQAAAEACAAAAAAAAwAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAKAAwAAAAIAAQACgAAAAgAAACsAAAAAwAAAEwAAAAoAAAABAAAAGT+//8IAAAADAAAAAAAAAAAAAAABQAAAHJlZklkAAAAhP7//wgAAAAMAAAAAAAAAAAAAAAEAAAAbmFtZQAAAACk/v//CAAAAEQAAAA7AAAAeyJ0eXBlIjoidGltZXNlcmllcy13aWRlIiwiY3VzdG9tIjp7InJlc3VsdFR5cGUiOiJtYXRyaXgifX0ABAAAAG1ldGEAAAAAAgAAAOAAAAAYAAAAAAASABgAFAATABIADAAAAAgABAASAAAAFAAAAJQAAACUAAAAAAADAZQAAAACAAAALAAAAAQAAABA////CAAAABAAAAAFAAAAVmFsdWUAAAAEAAAAbmFtZQAAAABk////CAAAAEAAAAA0AAAAeyJoYW5kbGVyIjoiL2FwaS92MS9xdWVyeV9yYW5nZSIsImpvYiI6InByb21ldGhldXMifQAAAAAGAAAAbGFiZWxzAAAAAAAAiv///wAAAgAFAAAAVmFsdWUAEgAYABQAAAATAAwAAAAIAAQAEgAAABQAAABEAAAATAAAAAAAAApMAAAAAQAAAAwAAAAIAAwACAAEAAgAAAAIAAAAEAAAAAQAAABUaW1lAAAAAAQAAABuYW1lAAAAAAAAAAAAAAYACAAGAAYAAAAAAAMABAAAAFRpbWUAAAAAWAIAAEFSUk9XMQ== diff --git a/pkg/util/converter/testdata/prom-scalar-wide-frame.json b/pkg/util/converter/testdata/prom-scalar-wide-frame.json new file mode 100644 index 00000000000..bfac8c9ad91 --- /dev/null +++ b/pkg/util/converter/testdata/prom-scalar-wide-frame.json @@ -0,0 +1,43 @@ +{ + "frames": [ + { + "schema": { + "meta": { + "type": "timeseries-many", + "custom": { + "resultType": "scalar" + } + }, + "fields": [ + { + "name": "Time", + "type": "time", + "typeInfo": { + "frame": "time.Time" + } + }, + { + "name": "Value", + "type": "number", + "typeInfo": { + "frame": "float64" + }, + "labels": { + + } + } + ] + }, + "data": { + "values": [ + [ + 1651680139104 + ], + [ + 0.00002482 + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/pkg/util/converter/testdata/prom-scalar-wide-golden.txt b/pkg/util/converter/testdata/prom-scalar-wide-golden.txt new file mode 100644 index 00000000000..22ebd05e759 --- /dev/null +++ b/pkg/util/converter/testdata/prom-scalar-wide-golden.txt @@ -0,0 +1,21 @@ +🌟 This was machine generated. Do not edit. 🌟 + +Frame[0] { + "type": "timeseries-many", + "custom": { + "resultType": "scalar" + } +} +Name: +Dimensions: 2 Fields by 1 Rows ++-----------------------------------+-----------------+ +| Name: Time | Name: Value | +| Labels: | Labels: | +| Type: []time.Time | Type: []float64 | ++-----------------------------------+-----------------+ +| 2022-05-04 16:02:19.104 +0000 UTC | 2.482e-05 | ++-----------------------------------+-----------------+ + + +====== TEST DATA RESPONSE (arrow base64) ====== +FRAME=QVJST1cxAAD/////6AEAABAAAAAAAAoADgAMAAsABAAKAAAAFAAAAAAAAAEEAAoADAAAAAgABAAKAAAACAAAAKwAAAADAAAATAAAACgAAAAEAAAArP7//wgAAAAMAAAAAAAAAAAAAAAFAAAAcmVmSWQAAADM/v//CAAAAAwAAAAAAAAAAAAAAAQAAABuYW1lAAAAAOz+//8IAAAARAAAADsAAAB7InR5cGUiOiJ0aW1lc2VyaWVzLW1hbnkiLCJjdXN0b20iOnsicmVzdWx0VHlwZSI6InNjYWxhciJ9fQAEAAAAbWV0YQAAAAACAAAAmAAAAAQAAACC////FAAAAGAAAABgAAAAAAAAA2AAAAACAAAALAAAAAQAAAB0////CAAAABAAAAAFAAAAVmFsdWUAAAAEAAAAbmFtZQAAAACY////CAAAAAwAAAACAAAAe30AAAYAAABsYWJlbHMAAAAAAACK////AAACAAUAAABWYWx1ZQASABgAFAAAABMADAAAAAgABAASAAAAFAAAAEQAAABMAAAAAAAACkwAAAABAAAADAAAAAgADAAIAAQACAAAAAgAAAAQAAAABAAAAFRpbWUAAAAABAAAAG5hbWUAAAAAAAAAAAAABgAIAAYABgAAAAAAAwAEAAAAVGltZQAAAAAAAAAA/////7gAAAAUAAAAAAAAAAwAFgAUABMADAAEAAwAAAAQAAAAAAAAABQAAAAAAAADBAAKABgADAAIAAQACgAAABQAAABYAAAAAQAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAAAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAJjc5VXy6xbxVZ9pkQb6PhAAAAAMABQAEgAMAAgABAAMAAAAEAAAACwAAAA4AAAAAAAEAAEAAAD4AQAAAAAAAMAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAACgAMAAAACAAEAAoAAAAIAAAArAAAAAMAAABMAAAAKAAAAAQAAACs/v//CAAAAAwAAAAAAAAAAAAAAAUAAAByZWZJZAAAAMz+//8IAAAADAAAAAAAAAAAAAAABAAAAG5hbWUAAAAA7P7//wgAAABEAAAAOwAAAHsidHlwZSI6InRpbWVzZXJpZXMtbWFueSIsImN1c3RvbSI6eyJyZXN1bHRUeXBlIjoic2NhbGFyIn19AAQAAABtZXRhAAAAAAIAAACYAAAABAAAAIL///8UAAAAYAAAAGAAAAAAAAADYAAAAAIAAAAsAAAABAAAAHT///8IAAAAEAAAAAUAAABWYWx1ZQAAAAQAAABuYW1lAAAAAJj///8IAAAADAAAAAIAAAB7fQAABgAAAGxhYmVscwAAAAAAAIr///8AAAIABQAAAFZhbHVlABIAGAAUAAAAEwAMAAAACAAEABIAAAAUAAAARAAAAEwAAAAAAAAKTAAAAAEAAAAMAAAACAAMAAgABAAIAAAACAAAABAAAAAEAAAAVGltZQAAAAAEAAAAbmFtZQAAAAAAAAAAAAAGAAgABgAGAAAAAAADAAQAAABUaW1lAAAAABACAABBUlJPVzE= diff --git a/pkg/util/converter/testdata/prom-series-wide-frame.json b/pkg/util/converter/testdata/prom-series-wide-frame.json new file mode 100644 index 00000000000..397dcef8981 --- /dev/null +++ b/pkg/util/converter/testdata/prom-series-wide-frame.json @@ -0,0 +1,44 @@ +{ + "frames": [ + { + "schema": { + "fields": [ + { + "name": "__name__", + "type": "string", + "typeInfo": { + "frame": "string" + } + }, + { + "name": "job", + "type": "string", + "typeInfo": { + "frame": "string" + } + }, + { + "name": "instance", + "type": "string", + "typeInfo": { + "frame": "string" + } + } + ] + }, + "data": { + "values": [ + [ + "up","up","process_start_time_seconds" + ], + [ + "prometheus","node","prometheus" + ], + [ + "localhost:9090","localhost:9091","localhost:9090" + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/pkg/util/converter/testdata/prom-series-wide-golden.txt b/pkg/util/converter/testdata/prom-series-wide-golden.txt new file mode 100644 index 00000000000..da12d51ed1a --- /dev/null +++ b/pkg/util/converter/testdata/prom-series-wide-golden.txt @@ -0,0 +1,18 @@ +🌟 This was machine generated. Do not edit. 🌟 + +Frame[0] +Name: +Dimensions: 3 Fields by 3 Rows ++----------------------------+----------------+----------------+ +| Name: __name__ | Name: job | Name: instance | +| Labels: | Labels: | Labels: | +| Type: []string | Type: []string | Type: []string | ++----------------------------+----------------+----------------+ +| up | prometheus | localhost:9090 | +| up | node | localhost:9091 | +| process_start_time_seconds | prometheus | localhost:9090 | ++----------------------------+----------------+----------------+ + + +====== TEST DATA RESPONSE (arrow base64) ====== +FRAME=QVJST1cxAAD/////wAEAABAAAAAAAAoADgAMAAsABAAKAAAAFAAAAAAAAAEEAAoADAAAAAgABAAKAAAACAAAAFAAAAACAAAAKAAAAAQAAADM/v//CAAAAAwAAAAAAAAAAAAAAAUAAAByZWZJZAAAAOz+//8IAAAADAAAAAAAAAAAAAAABAAAAG5hbWUAAAAAAwAAANAAAABoAAAABAAAAE7///8UAAAAQAAAAEAAAAAAAAAFPAAAAAEAAAAEAAAAPP///wgAAAAUAAAACAAAAGluc3RhbmNlAAAAAAQAAABuYW1lAAAAAAAAAAA0////CAAAAGluc3RhbmNlAAAAAK7///8UAAAAOAAAADgAAAAAAAAFNAAAAAEAAAAEAAAAnP///wgAAAAMAAAAAwAAAGpvYgAEAAAAbmFtZQAAAAAAAAAAjP///wMAAABqb2IAAAASABgAFAAAABMADAAAAAgABAASAAAAFAAAAEgAAABMAAAAAAAABUgAAAABAAAADAAAAAgADAAIAAQACAAAAAgAAAAUAAAACAAAAF9fbmFtZV9fAAAAAAQAAABuYW1lAAAAAAAAAAAEAAQABAAAAAgAAABfX25hbWVfXwAAAAD/////GAEAABQAAAAAAAAADAAWABQAEwAMAAQADAAAAJgAAAAAAAAAFAAAAAAAAAMEAAoAGAAMAAgABAAKAAAAFAAAAKgAAAADAAAAAAAAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAB4AAAAAAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAEAAAAAAAAABAAAAAAAAAABgAAAAAAAAAWAAAAAAAAAAAAAAAAAAAAFgAAAAAAAAAEAAAAAAAAABoAAAAAAAAACoAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAQAAAAeAAAAdXB1cHByb2Nlc3Nfc3RhcnRfdGltZV9zZWNvbmRzAAAAAAAACgAAAA4AAAAYAAAAcHJvbWV0aGV1c25vZGVwcm9tZXRoZXVzAAAAAA4AAAAcAAAAKgAAAGxvY2FsaG9zdDo5MDkwbG9jYWxob3N0OjkwOTFsb2NhbGhvc3Q6OTA5MAAAAAAAABAAAAAMABQAEgAMAAgABAAMAAAAEAAAACwAAAA8AAAAAAAEAAEAAADQAQAAAAAAACABAAAAAAAAmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoADAAAAAgABAAKAAAACAAAAFAAAAACAAAAKAAAAAQAAADM/v//CAAAAAwAAAAAAAAAAAAAAAUAAAByZWZJZAAAAOz+//8IAAAADAAAAAAAAAAAAAAABAAAAG5hbWUAAAAAAwAAANAAAABoAAAABAAAAE7///8UAAAAQAAAAEAAAAAAAAAFPAAAAAEAAAAEAAAAPP///wgAAAAUAAAACAAAAGluc3RhbmNlAAAAAAQAAABuYW1lAAAAAAAAAAA0////CAAAAGluc3RhbmNlAAAAAK7///8UAAAAOAAAADgAAAAAAAAFNAAAAAEAAAAEAAAAnP///wgAAAAMAAAAAwAAAGpvYgAEAAAAbmFtZQAAAAAAAAAAjP///wMAAABqb2IAAAASABgAFAAAABMADAAAAAgABAASAAAAFAAAAEgAAABMAAAAAAAABUgAAAABAAAADAAAAAgADAAIAAQACAAAAAgAAAAUAAAACAAAAF9fbmFtZV9fAAAAAAQAAABuYW1lAAAAAAAAAAAEAAQABAAAAAgAAABfX25hbWVfXwAAAADwAQAAQVJST1cx diff --git a/pkg/util/converter/testdata/prom-string-wide-frame.json b/pkg/util/converter/testdata/prom-string-wide-frame.json new file mode 100644 index 00000000000..dccf8a826b9 --- /dev/null +++ b/pkg/util/converter/testdata/prom-string-wide-frame.json @@ -0,0 +1,43 @@ +{ + "frames": [ + { + "schema": { + "meta": { + "type": "timeseries-many", + "custom": { + "resultType": "string" + } + }, + "fields": [ + { + "name": "Time", + "type": "time", + "typeInfo": { + "frame": "time.Time" + } + }, + { + "name": "Value", + "type": "string", + "typeInfo": { + "frame": "string" + }, + "labels": { + + } + } + ] + }, + "data": { + "values": [ + [ + 1651680139104 + ], + [ + "example" + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/pkg/util/converter/testdata/prom-string-wide-golden.txt b/pkg/util/converter/testdata/prom-string-wide-golden.txt new file mode 100644 index 00000000000..9de84775012 --- /dev/null +++ b/pkg/util/converter/testdata/prom-string-wide-golden.txt @@ -0,0 +1,21 @@ +🌟 This was machine generated. Do not edit. 🌟 + +Frame[0] { + "type": "timeseries-many", + "custom": { + "resultType": "string" + } +} +Name: +Dimensions: 2 Fields by 1 Rows ++-----------------------------------+----------------+ +| Name: Time | Name: Value | +| Labels: | Labels: | +| Type: []time.Time | Type: []string | ++-----------------------------------+----------------+ +| 2022-05-04 16:02:19.104 +0000 UTC | example | ++-----------------------------------+----------------+ + + +====== TEST DATA RESPONSE (arrow base64) ====== +FRAME=QVJST1cxAAD/////6AEAABAAAAAAAAoADgAMAAsABAAKAAAAFAAAAAAAAAEEAAoADAAAAAgABAAKAAAACAAAAKwAAAADAAAATAAAACgAAAAEAAAArP7//wgAAAAMAAAAAAAAAAAAAAAFAAAAcmVmSWQAAADM/v//CAAAAAwAAAAAAAAAAAAAAAQAAABuYW1lAAAAAOz+//8IAAAARAAAADsAAAB7InR5cGUiOiJ0aW1lc2VyaWVzLW1hbnkiLCJjdXN0b20iOnsicmVzdWx0VHlwZSI6InN0cmluZyJ9fQAEAAAAbWV0YQAAAAACAAAAmAAAAAQAAACC////FAAAAGAAAABkAAAAAAAABWAAAAACAAAALAAAAAQAAAB0////CAAAABAAAAAFAAAAVmFsdWUAAAAEAAAAbmFtZQAAAACY////CAAAAAwAAAACAAAAe30AAAYAAABsYWJlbHMAAAAAAAAEAAQABAAAAAUAAABWYWx1ZQASABgAFAAAABMADAAAAAgABAASAAAAFAAAAEQAAABMAAAAAAAACkwAAAABAAAADAAAAAgADAAIAAQACAAAAAgAAAAQAAAABAAAAFRpbWUAAAAABAAAAG5hbWUAAAAAAAAAAAAABgAIAAYABgAAAAAAAwAEAAAAVGltZQAAAAAAAAAA/////8gAAAAUAAAAAAAAAAwAFgAUABMADAAEAAwAAAAYAAAAAAAAABQAAAAAAAADBAAKABgADAAIAAQACgAAABQAAABoAAAAAQAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAQAAAAAAAAAAcAAAAAAAAAAAAAAAIAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAACY3OVV8usWAAAAAAcAAABleGFtcGxlABAAAAAMABQAEgAMAAgABAAMAAAAEAAAACwAAAA4AAAAAAAEAAEAAAD4AQAAAAAAANAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAACgAMAAAACAAEAAoAAAAIAAAArAAAAAMAAABMAAAAKAAAAAQAAACs/v//CAAAAAwAAAAAAAAAAAAAAAUAAAByZWZJZAAAAMz+//8IAAAADAAAAAAAAAAAAAAABAAAAG5hbWUAAAAA7P7//wgAAABEAAAAOwAAAHsidHlwZSI6InRpbWVzZXJpZXMtbWFueSIsImN1c3RvbSI6eyJyZXN1bHRUeXBlIjoic3RyaW5nIn19AAQAAABtZXRhAAAAAAIAAACYAAAABAAAAIL///8UAAAAYAAAAGQAAAAAAAAFYAAAAAIAAAAsAAAABAAAAHT///8IAAAAEAAAAAUAAABWYWx1ZQAAAAQAAABuYW1lAAAAAJj///8IAAAADAAAAAIAAAB7fQAABgAAAGxhYmVscwAAAAAAAAQABAAEAAAABQAAAFZhbHVlABIAGAAUAAAAEwAMAAAACAAEABIAAAAUAAAARAAAAEwAAAAAAAAKTAAAAAEAAAAMAAAACAAMAAgABAAIAAAACAAAABAAAAAEAAAAVGltZQAAAAAEAAAAbmFtZQAAAAAAAAAAAAAGAAgABgAGAAAAAAADAAQAAABUaW1lAAAAABACAABBUlJPVzE= diff --git a/pkg/util/converter/testdata/prom-vector-histogram-no-labels-wide-frame.json b/pkg/util/converter/testdata/prom-vector-histogram-no-labels-wide-frame.json new file mode 100644 index 00000000000..2bf66d9ccff --- /dev/null +++ b/pkg/util/converter/testdata/prom-vector-histogram-no-labels-wide-frame.json @@ -0,0 +1,70 @@ +{ + "frames": [ + { + "schema": { + "meta": { + "type": "heatmap-cells-sparse" + }, + "fields": [ + { + "name": "xMax", + "type": "time", + "typeInfo": { + "frame": "time.Time" + } + }, + { + "name": "yMin", + "type": "number", + "typeInfo": { + "frame": "float64" + }, + "labels": { + + } + }, + { + "name": "yMax", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "count", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "yLayout", + "type": "number", + "typeInfo": { + "frame": "int8" + } + } + ] + }, + "data": { + "values": [ + [ + 1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042,1649967668042 + ], + [ + 0.000004536465129862675,0.000004947050303081549,0.000005394796609394436,0.000005883067418700946,0.000006415530511884418,0.0000069961856323598564,0.00000762939453125,0.000008319913731882154,0.00000907293025972535,0.000009894100606163098,0.000010789593218788871,0.000011766134837401892,0.000012831061023768835,0.000013992371264719713,0.0000152587890625,0.000016639827463764308,0.0000181458605194507,0.000019788201212326197,0.000021579186437577742,0.000023532269674803783,0.00002566212204753767,0.000027984742529439426,0.000030517578125,0.000033279654927528616,0.0000362917210389014,0.000039576402424652394,0.000043158372875155485,0.00004706453934960757,0.00005132424409507534,0.00005596948505887885,0.00006103515625,0.00006655930985505723,0.00009412907869921513,0.00010264848819015068,0.0004477558804710308,0.00048828125,0.0005324744788404579,0.0005806675366224224,0.0006332224387944383,0.0006905339660024878,0.0007530326295937211,0.0008211879055212055,0.0008955117609420616,0.0009765625,0.0010649489576809157,0.0011613350732448448,0.0012664448775888766,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.020263118041422026,0.022097086912079608,0.024097044146999074,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.1051120519067143,0.11462550540058389,0.125,0.1363134665831572,0.14865088937534013,0.1621049443313762,0.17677669529663687,0.1927763531759926,0.2102241038134286,0.22925101080116778,0.25,0.2726269331663144,0.29730177875068026,0.3242098886627524,0.35355339059327373,0.3855527063519852,0.4204482076268572,0.45850202160233555,0.5,0.5452538663326288,0.5946035575013605,0.6484197773255048,0.7071067811865475,0.7711054127039704,1,1.0905077326652577,1.189207115002721,1.2968395546510096,1.414213562373095,1.5422108254079407,1.6817928305074288,1.8340080864093422,2,2.1810154653305154,2.378414230005442,2.5936791093020193,2.82842712474619 + ], + [ + 0.000004947050303081549,0.000005394796609394436,0.000005883067418700946,0.000006415530511884418,0.0000069961856323598564,0.00000762939453125,0.000008319913731882154,0.00000907293025972535,0.000009894100606163098,0.000010789593218788871,0.000011766134837401892,0.000012831061023768835,0.000013992371264719713,0.0000152587890625,0.000016639827463764308,0.0000181458605194507,0.000019788201212326197,0.000021579186437577742,0.000023532269674803783,0.00002566212204753767,0.000027984742529439426,0.000030517578125,0.000033279654927528616,0.0000362917210389014,0.000039576402424652394,0.000043158372875155485,0.00004706453934960757,0.00005132424409507534,0.00005596948505887885,0.00006103515625,0.00006655930985505723,0.0000725834420778028,0.00010264848819015068,0.0001119389701177577,0.00048828125,0.0005324744788404579,0.0005806675366224224,0.0006332224387944383,0.0006905339660024878,0.0007530326295937211,0.0008211879055212055,0.0008955117609420616,0.0009765625,0.0010649489576809157,0.0011613350732448448,0.0012664448775888766,0.0013810679320049755,0.0015060652591874421,0.001642375811042411,0.0017910235218841233,0.001953125,0.0021298979153618314,0.0023226701464896895,0.002532889755177753,0.002762135864009951,0.0030121305183748843,0.003284751622084822,0.0035820470437682465,0.00390625,0.004259795830723663,0.004645340292979379,0.005065779510355506,0.005524271728019902,0.0060242610367497685,0.006569503244169644,0.007164094087536493,0.0078125,0.008519591661447326,0.009290680585958758,0.010131559020711013,0.011048543456039804,0.012048522073499537,0.013139006488339287,0.014328188175072986,0.015625,0.01703918332289465,0.018581361171917516,0.020263118041422026,0.022097086912079608,0.024097044146999074,0.026278012976678575,0.028656376350145972,0.03125,0.0340783666457893,0.03716272234383503,0.04052623608284405,0.044194173824159216,0.04819408829399815,0.05255602595335715,0.057312752700291944,0.0625,0.0681567332915786,0.07432544468767006,0.0810524721656881,0.08838834764831843,0.0963881765879963,0.1051120519067143,0.11462550540058389,0.125,0.1363134665831572,0.14865088937534013,0.1621049443313762,0.17677669529663687,0.1927763531759926,0.2102241038134286,0.22925101080116778,0.25,0.2726269331663144,0.29730177875068026,0.3242098886627524,0.35355339059327373,0.3855527063519852,0.4204482076268572,0.45850202160233555,0.5,0.5452538663326288,0.5946035575013605,0.6484197773255048,0.7071067811865475,0.7711054127039704,0.8408964152537144,1.0905077326652577,1.189207115002721,1.2968395546510096,1.414213562373095,1.5422108254079407,1.6817928305074288,1.8340080864093422,2,2.1810154653305154,2.378414230005442,2.5936791093020193,2.82842712474619,3.0844216508158815 + ], + [ + 0.13333333333333333,2.0982456140350876,4.224561403508771,4.101754385964911,3.5438596491228074,3.922807017543859,3.8877192982456137,3.480701754385965,3.392982456140351,2.971929824561403,2.028070175438596,1.7087719298245612,1.1614035087719294,0.6210526315789473,0.42105263157894735,0.3192982456140351,0.21052631578947364,0.16842105263157892,0.1333333333333333,0.09122807017543859,0.08771929824561403,0.08421052631578947,0.0631578947368421,0.05964912280701754,0.014035087719298244,0.024561403508771926,0.02456140350877193,0.007017543859649122,0,0.010526315789473682,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.003508771929824561,0.007017543859649122,0.007017543859649122,0.03859649122807017,0.07368421052631578,0.04912280701754385,0.09122807017543859,0.03859649122807017,0.02456140350877193,0.017543859649122806,0.031578947368421054,0.06315789473684211,0.10526315789473682,0.11929824561403507,0.10877192982456138,0.11929824561403507,0.19649122807017538,0.24561403508771926,0.19999999999999998,0.18245614035087715,0.2771929824561403,0.5228070175438596,0.663157894736842,0.4070175438596491,0.4421052631578947,1.0070175438596491,1.4210526315789476,1.3859649122807016,1.0035087719298246,0.8771929824561402,8.273684210526316,32.50877192982456,57.18245614035087,53.82105263157894,39.508771929824555,22.824561403508767,11.554385964912282,6.50877192982456,4.529824561403507,3.5298245614035086,2.7438596491228067,2.284210526315789,1.9192982456140348,2.028070175438596,1.9403508771929823,1.4701754385964911,1.1964912280701754,0.9228070175438596,0.8421052631578947,2.8421052631578942,2.508771929824561,1.0842105263157893,0.3473684210526316,0.2526315789473684,0.1964912280701754,0.09473684210526315,0.07017543859649121,0.10526315789473684,0.07368421052631578,0.07368421052631577,0.06666666666666665,0.04912280701754385,0.05263157894736841,0.38947368421052625,2.9157894736842103,0.5052631578947367,0.11228070175438594,0.05263157894736842,0.04210526315789473,0.02807017543859649,0.010526315789473682,0.010526315789473682,0.003508771929824561,0.010526315789473682,0.003508771929824561,0.007017543859649122,0.007017543859649122,0.024561403508771926,0.017543859649122806,0.02456140350877193,0.04561403508771929,0.014035087719298244,0.021052631578947364,0.007017543859649122,0.003508771929824561,0.003508771929824561,0.007017543859649122,0.003508771929824561,0.010526315789473682,0.010526315789473682,0.021052631578947368,0.003508771929824561,0.003508771929824561,0,0.003508771929824561,0,0,0,0.003508771929824561,0.003508771929824561 + ], + [ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/pkg/util/converter/testdata/prom-vector-histogram-no-labels-wide-golden.txt b/pkg/util/converter/testdata/prom-vector-histogram-no-labels-wide-golden.txt new file mode 100644 index 00000000000..3d4d96bfc94 --- /dev/null +++ b/pkg/util/converter/testdata/prom-vector-histogram-no-labels-wide-golden.txt @@ -0,0 +1,27 @@ +🌟 This was machine generated. Do not edit. 🌟 + +Frame[0] { + "type": "heatmap-cells-sparse" +} +Name: +Dimensions: 5 Fields by 134 Rows ++-----------------------------------+------------------------+------------------------+---------------------+---------------+ +| Name: xMax | Name: yMin | Name: yMax | Name: count | Name: yLayout | +| Labels: | Labels: | Labels: | Labels: | Labels: | +| Type: []time.Time | Type: []float64 | Type: []float64 | Type: []float64 | Type: []int8 | ++-----------------------------------+------------------------+------------------------+---------------------+---------------+ +| 2022-04-14 20:21:08.042 +0000 UTC | 4.536465129862675e-06 | 4.947050303081549e-06 | 0.13333333333333333 | 0 | +| 2022-04-14 20:21:08.042 +0000 UTC | 4.947050303081549e-06 | 5.394796609394436e-06 | 2.0982456140350876 | 0 | +| 2022-04-14 20:21:08.042 +0000 UTC | 5.394796609394436e-06 | 5.883067418700946e-06 | 4.224561403508771 | 0 | +| 2022-04-14 20:21:08.042 +0000 UTC | 5.883067418700946e-06 | 6.415530511884418e-06 | 4.101754385964911 | 0 | +| 2022-04-14 20:21:08.042 +0000 UTC | 6.415530511884418e-06 | 6.9961856323598564e-06 | 3.5438596491228074 | 0 | +| 2022-04-14 20:21:08.042 +0000 UTC | 6.9961856323598564e-06 | 7.62939453125e-06 | 3.922807017543859 | 0 | +| 2022-04-14 20:21:08.042 +0000 UTC | 7.62939453125e-06 | 8.319913731882154e-06 | 3.8877192982456137 | 0 | +| 2022-04-14 20:21:08.042 +0000 UTC | 8.319913731882154e-06 | 9.07293025972535e-06 | 3.480701754385965 | 0 | +| 2022-04-14 20:21:08.042 +0000 UTC | 9.07293025972535e-06 | 9.894100606163098e-06 | 3.392982456140351 | 0 | +| ... | ... | ... | ... | ... | ++-----------------------------------+------------------------+------------------------+---------------------+---------------+ + + +====== TEST DATA RESPONSE (arrow base64) ====== +FRAME=QVJST1cxAAD/////+AIAABAAAAAAAAoADgAMAAsABAAKAAAAFAAAAAAAAAEEAAoADAAAAAgABAAKAAAACAAAAJAAAAADAAAATAAAACgAAAAEAAAAnP3//wgAAAAMAAAAAAAAAAAAAAAFAAAAcmVmSWQAAAC8/f//CAAAAAwAAAAAAAAAAAAAAAQAAABuYW1lAAAAANz9//8IAAAAKAAAAB8AAAB7InR5cGUiOiJoZWF0bWFwLWNlbGxzLXNwYXJzZSJ9AAQAAABtZXRhAAAAAAUAAADEAQAAMAEAANAAAABwAAAABAAAAGL+//8UAAAAPAAAAEQAAAAAAAACSAAAAAEAAAAEAAAAUP7//wgAAAAQAAAABwAAAHlMYXlvdXQABAAAAG5hbWUAAAAAAAAAAAgADAAIAAcACAAAAAAAAAEIAAAABwAAAHlMYXlvdXQAyv7//xQAAAA8AAAAPAAAAAAAAAM8AAAAAQAAAAQAAAC4/v//CAAAABAAAAAFAAAAY291bnQAAAAEAAAAbmFtZQAAAAAAAAAArv7//wAAAgAFAAAAY291bnQAAAAm////FAAAADwAAAA8AAAAAAAAAzwAAAABAAAABAAAABT///8IAAAAEAAAAAQAAAB5TWF4AAAAAAQAAABuYW1lAAAAAAAAAAAK////AAACAAQAAAB5TWF4AAAAAIL///8UAAAAYAAAAGAAAAAAAAADYAAAAAIAAAAsAAAABAAAAHT///8IAAAAEAAAAAQAAAB5TWluAAAAAAQAAABuYW1lAAAAAJj///8IAAAADAAAAAIAAAB7fQAABgAAAGxhYmVscwAAAAAAAIr///8AAAIABAAAAHlNaW4AABIAGAAUAAAAEwAMAAAACAAEABIAAAAUAAAARAAAAEwAAAAAAAAKTAAAAAEAAAAMAAAACAAMAAgABAAIAAAACAAAABAAAAAEAAAAeE1heAAAAAAEAAAAbmFtZQAAAAAAAAAAAAAGAAgABgAGAAAAAAADAAQAAAB4TWF4AAAAAAAAAAD/////SAEAABQAAAAAAAAADAAWABQAEwAMAAQADAAAAEgRAAAAAAAAFAAAAAAAAAMEAAoAGAAMAAgABAAKAAAAFAAAALgAAACGAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAQAAAAAAAAwBAAAAAAAAAAAAAAAAAAAMAQAAAAAAAAwBAAAAAAAAGAIAAAAAAAAAAAAAAAAAABgCAAAAAAAADAEAAAAAAAAkAwAAAAAAAAAAAAAAAAAAJAMAAAAAAAAMAQAAAAAAADAEAAAAAAAAAAAAAAAAAAAwBAAAAAAAACGAAAAAAAAAAAAAAAFAAAAhgAAAAAAAAAAAAAAAAAAAIYAAAAAAAAAAAAAAAAAAACGAAAAAAAAAAAAAAAAAAAAhgAAAAAAAAAAAAAAAAAAAIYAAAAAAAAAAAAAAAAAAACA5oUo2tzlFoDmhSja3OUWgOaFKNrc5RaA5oUo2tzlFoDmhSja3OUWgOaFKNrc5RaA5oUo2tzlFoDmhSja3OUWgOaFKNrc5RaA5oUo2tzlFoDmhSja3OUWgOaFKNrc5RaA5oUo2tzlFoDmhSja3OUWgOaFKNrc5RaA5oUo2tzlFoDmhSja3OUWgOaFKNrc5RaA5oUo2tzlFoDmhSja3OUWgOaFKNrc5RaA5oUo2tzlFoDmhSja3OUWgOaFKNrc5RaA5oUo2tzlFoDmhSja3OUWgOaFKNrc5RaA5oUo2tzlFoDmhSja3OUWgOaFKNrc5RaA5oUo2tzlFoDmhSja3OUWgOaFKNrc5RaA5oUo2tzlFoDmhSja3OUWgOaFKNrc5RaA5oUo2tzlFoDmhSja3OUWgOaFKNrc5RaA5oUo2tzlFoDmhSja3OUWgOaFKNrc5RaA5oUo2tzlFoDmhSja3OUWgOaFKNrc5RaA5oUo2tzlFoDmhSja3OUWgOaFKNrc5RaA5oUo2tzlFoDmhSja3OUWgOaFKNrc5RaA5oUo2tzlFoDmhSja3OUWgOaFKNrc5RaA5oUo2tzlFoDmhSja3OUWgOaFKNrc5RaA5oUo2tzlFoDmhSja3OUWgOaFKNrc5RaA5oUo2tzlFoDmhSja3OUWgOaFKNrc5RaA5oUo2tzlFoDmhSja3OUWgOaFKNrc5RaA5oUo2tzlFoDmhSja3OUWgOaFKNrc5RaA5oUo2tzlFoDmhSja3OUWgOaFKNrc5RaA5oUo2tzlFoDmhSja3OUWgOaFKNrc5RaA5oUo2tzlFoDmhSja3OUWgOaFKNrc5RaA5oUo2tzlFoDmhSja3OUWgOaFKNrc5RaA5oUo2tzlFoDmhSja3OUWgOaFKNrc5RaA5oUo2tzlFoDmhSja3OUW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 diff --git a/pkg/util/converter/testdata/prom-vector-wide-frame.json b/pkg/util/converter/testdata/prom-vector-wide-frame.json new file mode 100644 index 00000000000..6c2cb107cd2 --- /dev/null +++ b/pkg/util/converter/testdata/prom-vector-wide-frame.json @@ -0,0 +1,127 @@ +{ + "frames": [ + { + "schema": { + "meta": { + "type": "timeseries-wide", + "custom": { + "resultType": "vector" + } + }, + "fields": [ + { + "name": "Time", + "type": "time", + "typeInfo": { + "frame": "time.Time" + } + }, + { + "name": "Value", + "type": "number", + "typeInfo": { + "frame": "float64", + "nullable": true + }, + "labels": { + "__name__": "up", + "instance": "localhost:9090", + "job": "prometheus" + } + }, + { + "name": "Value", + "type": "number", + "typeInfo": { + "frame": "float64", + "nullable": true + }, + "labels": { + "__name__": "up", + "instance": "localhost:9100", + "job": "node" + } + }, + { + "name": "Value", + "type": "number", + "typeInfo": { + "frame": "float64", + "nullable": true + }, + "labels": { + "level": "error", + "location": "moon" + } + }, + { + "name": "Value", + "type": "number", + "typeInfo": { + "frame": "float64", + "nullable": true + }, + "labels": { + "level": "info", + "location": "moon" + } + }, + { + "name": "Value", + "type": "number", + "typeInfo": { + "frame": "float64", + "nullable": true + }, + "labels": { + "level": "debug", + "location": "moon" + } + } + ] + }, + "data": { + "values": [ + [ + 1435781451781,1645029699000 + ], + [ + 1,null + ], + [ + 0,null + ], + [ + null,null + ], + [ + null,null + ], + [ + null,null + ] + ], + "entities": [ + null, + null, + null, + { + "Inf": [ + 1 + ] + }, + { + "NegInf": [ + 1 + ] + }, + { + "NaN": [ + 1 + ] + } + ] + } + } + ] +} \ No newline at end of file diff --git a/pkg/util/converter/testdata/prom-vector-wide-golden.txt b/pkg/util/converter/testdata/prom-vector-wide-golden.txt new file mode 100644 index 00000000000..c25da291861 --- /dev/null +++ b/pkg/util/converter/testdata/prom-vector-wide-golden.txt @@ -0,0 +1,22 @@ +🌟 This was machine generated. Do not edit. 🌟 + +Frame[0] { + "type": "timeseries-wide", + "custom": { + "resultType": "vector" + } +} +Name: +Dimensions: 6 Fields by 2 Rows ++-----------------------------------+--------------------------------------------------------------+--------------------------------------------------------+------------------------------------+-----------------------------------+------------------------------------+ +| Name: Time | Name: Value | Name: Value | Name: Value | Name: Value | Name: Value | +| Labels: | Labels: __name__=up, instance=localhost:9090, job=prometheus | Labels: __name__=up, instance=localhost:9100, job=node | Labels: level=error, location=moon | Labels: level=info, location=moon | Labels: level=debug, location=moon | +| Type: []time.Time | Type: []*float64 | Type: []*float64 | Type: []*float64 | Type: []*float64 | Type: []*float64 | ++-----------------------------------+--------------------------------------------------------------+--------------------------------------------------------+------------------------------------+-----------------------------------+------------------------------------+ +| 2015-07-01 20:10:51.781 +0000 UTC | 1 | 0 | null | null | null | +| 2022-02-16 16:41:39 +0000 UTC | null | null | +Inf | -Inf | NaN | ++-----------------------------------+--------------------------------------------------------------+--------------------------------------------------------+------------------------------------+-----------------------------------+------------------------------------+ + + +====== TEST DATA RESPONSE (arrow base64) ====== +FRAME=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 diff --git a/pkg/util/converter/testdata/prom-warnings-wide-frame.json b/pkg/util/converter/testdata/prom-warnings-wide-frame.json new file mode 100644 index 00000000000..b5a8d2c9704 --- /dev/null +++ b/pkg/util/converter/testdata/prom-warnings-wide-frame.json @@ -0,0 +1,137 @@ +{ + "frames": [ + { + "schema": { + "meta": { + "type": "timeseries-wide", + "custom": { + "resultType": "vector" + }, + "notices": [ + { + "severity": "warning", + "text": "warning 1" + }, + { + "severity": "warning", + "text": "warning 2" + } + ] + }, + "fields": [ + { + "name": "Time", + "type": "time", + "typeInfo": { + "frame": "time.Time" + } + }, + { + "name": "Value", + "type": "number", + "typeInfo": { + "frame": "float64", + "nullable": true + }, + "labels": { + "__name__": "up", + "instance": "localhost:9090", + "job": "prometheus" + } + }, + { + "name": "Value", + "type": "number", + "typeInfo": { + "frame": "float64", + "nullable": true + }, + "labels": { + "__name__": "up", + "instance": "localhost:9100", + "job": "node" + } + }, + { + "name": "Value", + "type": "number", + "typeInfo": { + "frame": "float64", + "nullable": true + }, + "labels": { + "level": "error", + "location": "moon" + } + }, + { + "name": "Value", + "type": "number", + "typeInfo": { + "frame": "float64", + "nullable": true + }, + "labels": { + "level": "info", + "location": "moon" + } + }, + { + "name": "Value", + "type": "number", + "typeInfo": { + "frame": "float64", + "nullable": true + }, + "labels": { + "level": "debug", + "location": "moon" + } + } + ] + }, + "data": { + "values": [ + [ + 1435781451781,1645029699000 + ], + [ + 1,null + ], + [ + 0,null + ], + [ + null,null + ], + [ + null,null + ], + [ + null,null + ] + ], + "entities": [ + null, + null, + null, + { + "Inf": [ + 1 + ] + }, + { + "NegInf": [ + 1 + ] + }, + { + "NaN": [ + 1 + ] + } + ] + } + } + ] +} \ No newline at end of file diff --git a/pkg/util/converter/testdata/prom-warnings-wide-golden.txt b/pkg/util/converter/testdata/prom-warnings-wide-golden.txt new file mode 100644 index 00000000000..faf0e63abbc --- /dev/null +++ b/pkg/util/converter/testdata/prom-warnings-wide-golden.txt @@ -0,0 +1,32 @@ +🌟 This was machine generated. Do not edit. 🌟 + +Frame[0] { + "type": "timeseries-wide", + "custom": { + "resultType": "vector" + }, + "notices": [ + { + "severity": "warning", + "text": "warning 1" + }, + { + "severity": "warning", + "text": "warning 2" + } + ] +} +Name: +Dimensions: 6 Fields by 2 Rows ++-----------------------------------+--------------------------------------------------------------+--------------------------------------------------------+------------------------------------+-----------------------------------+------------------------------------+ +| Name: Time | Name: Value | Name: Value | Name: Value | Name: Value | Name: Value | +| Labels: | Labels: __name__=up, instance=localhost:9090, job=prometheus | Labels: __name__=up, instance=localhost:9100, job=node | Labels: level=error, location=moon | Labels: level=info, location=moon | Labels: level=debug, location=moon | +| Type: []time.Time | Type: []*float64 | Type: []*float64 | Type: []*float64 | Type: []*float64 | Type: []*float64 | ++-----------------------------------+--------------------------------------------------------------+--------------------------------------------------------+------------------------------------+-----------------------------------+------------------------------------+ +| 2015-07-01 20:10:51.781 +0000 UTC | 1 | 0 | null | null | null | +| 2022-02-16 16:41:39 +0000 UTC | null | null | +Inf | -Inf | NaN | ++-----------------------------------+--------------------------------------------------------------+--------------------------------------------------------+------------------------------------+-----------------------------------+------------------------------------+ + + +====== TEST DATA RESPONSE (arrow base64) ====== +FRAME=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 From 0769151da265e5b6d316f60273008af5cfb99412 Mon Sep 17 00:00:00 2001 From: JitaC <70489351+achatterjee-grafana@users.noreply.github.com> Date: Tue, 24 May 2022 22:09:52 -0400 Subject: [PATCH 009/103] Docs: Fixed typo in what's new in grafana 9 (#49549) * Fixed typo * Updated metadata (cherry picked from commit 3a541ea127f2fe9c67c98247e3f68ff00c320951) --- docs/sources/whatsnew/whats-new-in-v9-0.md | 227 +++++++++++++++++++++ 1 file changed, 227 insertions(+) create mode 100644 docs/sources/whatsnew/whats-new-in-v9-0.md diff --git a/docs/sources/whatsnew/whats-new-in-v9-0.md b/docs/sources/whatsnew/whats-new-in-v9-0.md new file mode 100644 index 00000000000..ca241500986 --- /dev/null +++ b/docs/sources/whatsnew/whats-new-in-v9-0.md @@ -0,0 +1,227 @@ ++++ +aliases = ["/docs/grafana/latest/guides/whats-new-in-v9-0/", "/docs/grafana/latest/whatsnew/whats-new-in-v9-0/"] +description = "Feature and improvement highlights for Grafana v9.0" +keywords = ["grafana", "new", "documentation", "9.0", "release notes"] +title = "What's new in Grafana v9.0" +weight = -33 + +[_build] + list = false ++++ + +# What’s new in Grafana v9.0 + +As tradition goes, GrafanaCon - our yearly community event for Grafana open source users, is also where we launch the latest software release of Grafana. Keeping up with tradition, we are excited to be announcing Grafana v9.0 - a release that elevates Grafana’s ease of use, discovery of data through new and improved visualizations and a default unified alerting experience. + +A big focus for Grafana is making observability and data visualization and analytics easier and more accessible for everyone. For popular data sources like Prometheus and Loki writing and understanding queries can be hard. This is why we are excited to announce that Grafana 9 comes with new visual query builders for both these data sources. These visual query builders will lower the barrier of entry and they help anyone to compose, understand and learn how the underlying query languages. + +The release also includes a brand new powerful and fast heatmap visualization, a more accessible navigation menu, improvements to dashboard search, advanced security and authentication features, and more. + +We’ve summarized what’s new in the release here, but you might also be interested in the announcement blog post as well. If you’d like all the details you can check out the complete [changelog](https://github.com/grafana/grafana/blob/main/CHANGELOG.md). + +## Prometheus query builder + +Prometheus queries are not the easiest to write or understand. The PromQL query language is very complex and advanced. Even relatively simple queries are hard to compose and read for new users. This is why we are introducing a new UI query builder that allows anyone to compose and learn how Prometheus queries work. + +{{< figure src="/static/img/docs/prometheus/prom_query_builder_light.png" max-width="750px" caption="Prometheus query builder" >}} + +### Metric and label filters + +This new query builder allows you to easily search and select a metric as well as building label filters. You can start either the selecting a metric or a label filter as they both act as filters on each other. The metric selector allow you to search on multiple parts of the metric name at the same time, just separate each search string with a whitespace. + +### Operations + +All functions, aggregations and binary operations are added via the + Operation button. Operations are presented in the order they are executed, not in the inverted order they are written in the text query. This makes queries a lot easier to read and reason about as you now clearly see what function parameter is going to which function as well as information about parameter names and function documentation integrated into the builder. + +### Range vector + +The query builder will automatically mange and add the range vector, it will be shown as a parameter to the operations that require a range (rate, delta, increase etc). + +### Binary operations + +Simple binary operations like multiple or divide by scaler are represented via simple operation boxes like other functions but the builder also supports binary operations on nested query expressions. + +### Switch between code and builder + +You can switch between the text edit mode (Code) and the UI builder mode while having your text changes preserved as the visual builder model is derived from the text query using a full featured PromQL query parser. + +## Loki query builder + +Loki also has complex and powerful query language in LogQL. In many ways it’s more complex and has more syntax to remember than PromQL. Luckily the new query builder we are introducing in Grafana v 9.0 will help you write and understand Loki queries without knowing any of the syntax. Take a look at this example log query. + +{{< figure src="/static/img/docs/loki/loki_query_builder_log_query_light_theme.png" max-width="750px" caption="Loki query builder" >}} + +In the query builder you can add and edit label filters, line filters, parsers and functions. The image above shows a log query but you can also do metric queries. + +{{< figure src="/static/img/docs/loki/loki_query_builder_log_query_light_theme.png" max-width="750px" caption="Loki query builder" >}} + +The Loki query builder supports all the features listed for the prometheus query builder above, including support for nested binary operations, explain mode and switching between text editor and builder while preserving changes. + +## New heatmap panel + +We are replacing the old heatmap panel with a new modern panel that is using the new panel option architecture. + +{{< figure src="/static/img/docs/heatmap-panel/heatmap_panel.png" max-width="500px" caption="New heatmap panel" >}} + +New new heatmap panel has a number enhancements compared to the old version. + +- Multiple orders of magnitude faster +- Supports showing exemplars (traces) overlay +- Supports Prometheus sparse histograms +- Supports changing number of colors steps +- For unbucketed data, it performs smarter auto bucket sizing +- Supports filtering out bucket values close to but not exactly zero + +The new heatmap by default assumes that the data is pre-bucked. So if your query returns time series each series is seen as separate bucket (y axis tick). The panel is so much faster than the old one so it can render many time series with thousands of data points each without issue. + +{{< figure src="/static/img/docs/heatmap-panel/heatmap_with_time_series_light_theme.png" max-width="500px" caption="Heatmap panel with time series" >}} + +## Unified alerting is the default in Grafana 9 + +Unified alerting is now on by default if you upgrade from an earlier version of Grafana. If you have been using legacy alerting in an earlier version of Grafana and you upgrade to Grafana 9 your alert rules will be automatically migrated and the legacy alerting interface will be replaced by the unified alerting interface. + +Unified alerting has been available since June, 2021, it now provides feature parity with legacy alerting and many additional benefits. To find out more on the process to revert back to legacy alerts if needed, click [here]({{< relref "../alerting/opt-in.md#disable-grafana-alertsd#" >}}). Note that if you do revert back (by setting the Grafana config flag GF_UNIFIED_ALERTING_ENABLED to false), that we expect to remove legacy alerting in the next major Grafana release, Grafana 10. + +### Alert state history for Grafana managed alerts + +Alert state history for Grafana managed alerts indicates the cause of the state. Alert rules can be configured to use the "Alerting" or "OK" states when rule evaluations result in Error or NoData conditions. This change tracks the difference between, for example, Alerting, Alerting (NoData), and Alerting (Error). This change also updates the UI to handle the new serialized states: filtering, sorting, and coloring. + +### Images in notifications for Grafana managed alerts + +Unified alerting now provides the ability to capture an image for Grafana managed alerts and deliver it via a notification. This is configurable via the contact points tab of Unified alerting . This functionality was available in legacy dashboard alerting, but was missing in unified alerting. It requires the alert to be related to a specific dashboard using the “Dashboard UID” field. + +## Envelope encryption is generally available and enabled by default + +Grafana now uses envelope encryption to encrypt secrets in the database. Envelope encryption adds a layer of indirection to the encryption process. Instead of encrypting all secrets in the database with a single key, Grafana uses a set of keys called data encryption keys (DEKs) to encrypt them. These data encryption keys are themselves encrypted with a single key encryption key (KEK). This allows you to rotate your KEK and quickly re-encrypt your DEKs in case a key is compromised. In Grafana Enterprise, you can also store your KEK in an external Key Management Service (KMS) like AWS KMS or Azure Key Vault, for extra security. Learn more about envelope encryption in the [docs](https://grafana.com/docs/grafana/next/administration/database-encryption/#envelope-encryption). + +{{< figure src="/static/img/docs/enterprise/dashboards/envelope-encryption.png" max-width="750px" caption="Envelope encryption" >}} + +## Dashboard previews (opt-in beta) + +The dashboard previews initially came to life during our internal [Grafana Labs Hackathon](https://grafana.com/blog/2022/01/14/all-about-the-grafana-labs-hackathon-2.0/?), and are now ready for an opt-in beta release. The previews provide an overview of all available dashboards and help you quickly find the right dashboard when the dashboard names aren’t enough. + +Refer to the [Dashboard previews topic](https://grafana.com/docs/grafana/next/dashboards/previews/) for instructions on how to enable the feature and current limitations. + +{{< figure src="/static/img/docs/dashboards/dashboard-previews.png" max-width="750px" caption="Dashboard previews" >}} + +## Panel title search + +In addition to searching dashboards by title, you can now search panels as well. If a panel’s title matches your search query, it will be displayed in the search results. + +## Expanding the navigation bar + +You can expand the navigation bar for a better overview of Grafana’s features and installed integrations. This is the first improvement to Grafana’s navigation, with more to come in future releases. + +{{< figure src="/static/img/docs/expanding-nav-bar-9-0.png" max-width="750px" caption="Expanding nav bar" >}} + +## Starred dashboards in the navigation bar + +As part of the upcoming improvements to Grafana’s navigation, you can now directly access your starred dashboards from the navigation bar. This is currently an opt-in feature that can be accessed by enabling the savedItems feature flag. + +{{< figure src="/static/img/docs/dashboards/starred-dashboards-nav-bar.png" max-width="750px" caption="Starred dashboards" >}} + +## Explore to Dashboard + +It is now possible to create panels and/or dashboards directly from Explore. When clicking on the “Add to dashboard” button in the Explore toolbar users can now create a panel in a new dashboard or in an existing one. The generated panel contains all the pane’s queries and a default visualization automatically picked from the current results shown in Explore. Dashboards are not automatically saved so that users can go through the current save flow. Optionally, dashboards can be opened in a new tab to preserve Explore’s state. + +{{< figure src="/static/img/docs/dashboards/explore-to-dashboard-9-0.png" max-width="500px" caption="Explore to dashboard" >}} + +## Command palette + +Using cmd+k (macOS) or ctrl+k (Linux/Windows), users can pull up a palette of commands that allow easier navigation and other tasks. + +## List of errors with trace IDs + +In order to support debugging issues in Grafana, error alerts that appear in Grafana include a trace ID, and these alerts can be accessed under your Profile. This is currently an opt-in feature that can be accessed by enabling two feature flags: + +- `tracing` - enables the tracing id in error messages +- `persistNotifications` - enables the alerts page under Profile + +{{< figure src="/static/img/docs/dashboards/errors-with-trace-ids.png" max-width="500px" caption="Errors with trace IDs" >}} + +## Query History migration + +Query history is a panel that keeps track of all queries that are run in Explore. So far the history was saved in browser local storage causing some problems, for example running out of storage space or not being able to use the same query history in different browsers. Not anymore! We’re migrating all entries from browser local storage to the database. Migration will happen behind the senses when query history panel is opened. This feature can be disabled using config entry query_history in custom.ini. + +{{< figure src="/static/img/docs/panels/query-history-9-0.png" max-width="900px" caption="Query history" >}} + +## Enterprise + +### Access control + +### RBAC is generally available + +Fine-grained access control is now called role-based access control, or RBAC. It is now enabled by default in Grafana Enterprise and Grafana Cloud Advanced, so you can create and define custom roles like Annotations Writer, Users Viewer, and Dashboard Permissions Writer for users, teams, or service accounts. Learn more about RBAC in the [docs](https://grafana.com/docs/grafana/next/enterprise/access-control/). + +{{< figure src="/static/img/docs/enterprise/rbac-ga.png" max-width="755px" caption="RBAC is GA" >}} + +## Reporting + +### Add multiple dashboards to a single report + +If you have information spread across several dashboards that you’d like to send out to a group of recipients periodically, you can now add multiple dashboards to a single report and send it all in one email. Learn more about Reporting in the [Reporting docs](https://grafana.com/docs/grafana/latest/enterprise/reporting/#reporting). + +### Embed an image of a dashboard in a report + +Reporting is all about convenience - getting info to eyeballs as quickly as possible. Now you can embed an image of a dashboard directly within a report email, so your recipients can see it right when they open the message instead of opening an attached PDF. This is especially handy for SLOs, financial results, or other at-a-glance data. Learn more about Reporting in the [Reporting docs](https://grafana.com/docs/grafana/latest/enterprise/reporting/#reporting). + +{{< figure src="/static/img/docs/dashboards/report-embedded-image.png" max-width="750px" caption="Embed report" >}} + +## Breaking Changes + +This is a partial list of notable breaking changes. For the complete list, see our [Release Notes](LINK-TO-9.0-RELEASE-NOTES). + +### Role-based access control: changes for general release + +Fine-grained access control is now called "Role-based access control". As part of the Grafana 9.0 release, the service is generally available, and there are several breaking changes: + +Built-in roles are now called basic roles, and they now consist of permissions, not roles +The Terraform builtin_role_assignment resource is going away. +Grafana provisioning has a new schema, please refer to the documentation for more information. +Basic roles no longer support permission inheritance. Previously, when permissions of a Viewer basic role were modified, it was propagated to the Editor and Admin basic roles. With the Grafana 9.0 release, this is not the case anymore. + +### Loki: logs data format changed + +In the Loki data source, the data format used to represent Loki logs-data has been changed to a more efficient format. (NOTE: this change applies to logs data only, it does not apply to numeric data) +The logs are represented by a single dataframe with a "labels" field added, instead of separate dataframes for every label combination. Displaying logs data in explore, or in a dashboard using the logs panel will continue to work without changes. But, when displaying logs data in other dashboard panels, for example in a table visualization, changes will be visible, and configurations might need to be adjusted. For example, if the "Labels to fields" transformation was used, it has to be replaced with an “Extract fields” transformation, where the “labels” field is chosen as the source. + +### Loki: NaN values representation changed in numeric data + +In the Loki data source, when grafana receives numeric data from Loki, it may contain NaN (not a number) values. For consistency and performance reasons we changed how we represent such values in Grafana. In previous versions, the behavior was different between alerting queries and other queries (like dashboard queries or explore queries). Alerting queries kept NaN values unchanged, but other queries converted these values to “null”. Starting with grafana 9.0.0, we will always keep these values unchanged. In other words, queries in dashboards and explore will behave the same as alerting queries in this regard. + +### Elasticsearch: Support for versions after their end of life was removed + +Support for Elasticsearch versions that are after their end of life ( based on https://www.elastic.co/support/eol ) was removed. This means that versions older than Elasticseach 7.10.0 will not be supported in Grafana 9.0.0. + +### Elasticsearch: Support for browser access mode removed + +In the Elasticsearch data source, browser access mode was deprecated in grafana 7.4.0 and removed in 9.0.0. If you used this mode, please switch to server access mode on the data source configuration page. + + + +### Transformations: Allow more complex regex expressions in rename by regex + +The rename by regex transformation has been improved to allow global patterns of the form `//g`. Depending on the regex match used, this may cause some transformations to behave slightly differently. You can guarantee the same behavior as before by wrapping the match string in forward slashes (/), for example, (._) would become /(._)/. ([Github Issue #48179](https://github.com/grafana/grafana/pull/48179)) + +## ## A note on Grafana Enterprise licensing + +The Rename by regex transformation has been improved to allow global patterns of the form //g. Depending on the regex match used, this may cause some transformations to behave slightly differently. You can guarantee the same behavior as before by wrapping the match string in forward slashes (/), e.g. (._) becomes /(._)/ +Github Issue #48179 + +## Deprecation Notices + +When we release Grafana 9.0 on June 14th, Grafana will no longer enforce viewers and editor-admins differently. That means that regardless of whether your Grafana Enterprise license is tiered or combined, instead of seeing this on the Stats & Licensing page: + +{{< figure src="/static/img/docs/enterprise/separate-licenses.png" max-width="500px" caption="Separate license" >}} + +You will see this: + +{{< figure src="/static/img/docs/enterprise/combined-licenses.png" max-width="500px" caption="Combined license" >}} + +It also means that Grafana will count all users the same, regardless of their role, including org roles (Viewer, Editor, Admin) and fine-grained roles (Dashboard Editor, Reports Editor, etc.). You won’t see a separate warning banner or see users locked out if you hit your limit of viewers or editor-admins, only your total combined limit of active users. + +For example, if you have a license for 10 active admins and 100 active viewers in your Grafana Enterprise license, then starting in v9.0 you will have a limit of 110 active users, and it doesn’t matter what roles those users have, they will all be counted and enforced the same. + +This is a more permissive policy than before. From 9854234c66332ca82e6ae786f592c9f6631f0edc Mon Sep 17 00:00:00 2001 From: "Grot (@grafanabot)" <43478413+grafanabot@users.noreply.github.com> Date: Wed, 25 May 2022 02:33:45 -0400 Subject: [PATCH 010/103] DatePicker: able to set minimum date that can be selected (#49503) (#49505) (cherry picked from commit d373beeb73190241c45ae20fe9d190368f7d8dee) Co-authored-by: Alexander Zobnin --- .../components/DateTimePickers/DatePicker/DatePicker.tsx | 8 +++++++- .../DatePickerWithInput/DatePickerWithInput.tsx | 3 +++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/grafana-ui/src/components/DateTimePickers/DatePicker/DatePicker.tsx b/packages/grafana-ui/src/components/DateTimePickers/DatePicker/DatePicker.tsx index 8e2397df452..e39ce8157ce 100644 --- a/packages/grafana-ui/src/components/DateTimePickers/DatePicker/DatePicker.tsx +++ b/packages/grafana-ui/src/components/DateTimePickers/DatePicker/DatePicker.tsx @@ -15,6 +15,7 @@ export interface DatePickerProps { onClose: () => void; onChange: (value: Date) => void; value?: Date; + minDate?: Date; } /** @public */ @@ -37,7 +38,7 @@ export const DatePicker = memo((props) => { DatePicker.displayName = 'DatePicker'; -const Body = memo(({ value, onChange }) => { +const Body = memo(({ value, minDate, onChange }) => { const styles = useStyles2(getBodyStyles); return ( @@ -45,6 +46,7 @@ const Body = memo(({ value, onChange }) => { className={styles.body} tileClassName={styles.title} value={value || new Date()} + minDate={minDate} nextLabel={} prevLabel={} onChange={(ev: Date | Date[]) => { @@ -68,6 +70,10 @@ export const getStyles = (theme: GrafanaTheme2) => { background-color: ${theme.colors.background.primary}; border: 1px solid ${theme.colors.border.weak}; border-radius: 2px 0 0 2px; + + button:disabled { + color: ${theme.colors.text.disabled}; + } `, }; }; diff --git a/packages/grafana-ui/src/components/DateTimePickers/DatePickerWithInput/DatePickerWithInput.tsx b/packages/grafana-ui/src/components/DateTimePickers/DatePickerWithInput/DatePickerWithInput.tsx index ac924d7be24..136cfedce82 100644 --- a/packages/grafana-ui/src/components/DateTimePickers/DatePickerWithInput/DatePickerWithInput.tsx +++ b/packages/grafana-ui/src/components/DateTimePickers/DatePickerWithInput/DatePickerWithInput.tsx @@ -12,6 +12,7 @@ export const formatDate = (date: Date | string) => dateTime(date).format('L'); /** @public */ export interface DatePickerWithInputProps extends Omit { value?: Date | string; + minDate?: Date; onChange: (value: Date | string) => void; /** Hide the calendar when date is selected */ closeOnSelect?: boolean; @@ -21,6 +22,7 @@ export interface DatePickerWithInputProps extends Omit { onChange(ev); if (closeOnSelect) { From b5da0dcf3995967f339c669e816340adcf734ccc Mon Sep 17 00:00:00 2001 From: "Grot (@grafanabot)" <43478413+grafanabot@users.noreply.github.com> Date: Wed, 25 May 2022 02:45:19 -0400 Subject: [PATCH 011/103] Search: Add primary background for global search container (#49473) (#49499) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Search: Add primarhy background for global search container * Fix spacing for ActionRow * Fixing ts issue (cherry picked from commit 20f8b8625ac0f3f61e8fa33df8552813ea8335c0) Co-authored-by: Torkel Ödegaard --- .../features/search/components/ActionRow.tsx | 17 ++++++++--------- .../search/components/DashboardSearch.tsx | 7 +++++-- .../search/page/components/ActionRow.tsx | 4 ++-- 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/public/app/features/search/components/ActionRow.tsx b/public/app/features/search/components/ActionRow.tsx index ef9c5d13c65..12b5c0a67cd 100644 --- a/public/app/features/search/components/ActionRow.tsx +++ b/public/app/features/search/components/ActionRow.tsx @@ -1,9 +1,9 @@ import { css } from '@emotion/css'; import React, { FC, ChangeEvent, FormEvent } from 'react'; -import { GrafanaTheme, SelectableValue } from '@grafana/data'; +import { GrafanaTheme2, SelectableValue } from '@grafana/data'; import { config } from '@grafana/runtime'; -import { HorizontalGroup, RadioButtonGroup, stylesFactory, useTheme, Checkbox, InlineSwitch } from '@grafana/ui'; +import { HorizontalGroup, RadioButtonGroup, Checkbox, InlineSwitch, useStyles2 } from '@grafana/ui'; import { SortPicker } from 'app/core/components/Select/SortPicker'; import { TagFilter } from 'app/core/components/TagFilter/TagFilter'; import { SearchSrv } from 'app/core/services/search_srv'; @@ -40,8 +40,7 @@ export const ActionRow: FC = ({ hideLayout, showPreviews, }) => { - const theme = useTheme(); - const styles = getStyles(theme); + const styles = useStyles2(getStyles); const previewsEnabled = config.featureToggles.dashboardPreviews; return ( @@ -78,21 +77,21 @@ export const ActionRow: FC = ({ ActionRow.displayName = 'ActionRow'; -const getStyles = stylesFactory((theme: GrafanaTheme) => { +export const getStyles = (theme: GrafanaTheme2) => { return { actionRow: css` display: none; - @media only screen and (min-width: ${theme.breakpoints.md}) { + ${theme.breakpoints.up('md')} { display: flex; justify-content: space-between; align-items: center; - padding: ${theme.spacing.lg} 0; + padding-bottom: ${theme.spacing(2)}; width: 100%; } `, rowContainer: css` - margin-right: ${theme.spacing.md}; + margin-right: ${theme.spacing(1)}; `, checkboxWrapper: css` label { @@ -100,4 +99,4 @@ const getStyles = stylesFactory((theme: GrafanaTheme) => { } `, }; -}); +}; diff --git a/public/app/features/search/components/DashboardSearch.tsx b/public/app/features/search/components/DashboardSearch.tsx index 33f7ff2f668..065ce775f38 100644 --- a/public/app/features/search/components/DashboardSearch.tsx +++ b/public/app/features/search/components/DashboardSearch.tsx @@ -140,11 +140,14 @@ const getStyles = stylesFactory((theme: GrafanaTheme2) => { max-width: 1400px; margin: 0 auto; padding: ${theme.spacing(2)}; + background: ${theme.colors.background.primary}; + border: 1px solid ${theme.components.panel.borderColor}; + margin-top: ${theme.spacing(4)}; height: 100%; ${theme.breakpoints.up('md')} { - padding: ${theme.spacing(4)}; + padding: ${theme.spacing(3)}; } `, closeBtn: css` @@ -160,7 +163,7 @@ const getStyles = stylesFactory((theme: GrafanaTheme2) => { display: flex; flex-direction: column; height: 100%; - padding-bottom: ${theme.spacing(3)}; + padding: ${theme.spacing(2, 0, 3, 0)}; `, input: css` box-sizing: border-box; diff --git a/public/app/features/search/page/components/ActionRow.tsx b/public/app/features/search/page/components/ActionRow.tsx index c6a86240f05..7c309c11cff 100644 --- a/public/app/features/search/page/components/ActionRow.tsx +++ b/public/app/features/search/page/components/ActionRow.tsx @@ -104,11 +104,11 @@ export const getStyles = (theme: GrafanaTheme2) => { actionRow: css` display: none; - @media only screen and (min-width: ${theme.v1.breakpoints.md}) { + ${theme.breakpoints.up('md')} { display: flex; justify-content: space-between; align-items: center; - padding: ${theme.v1.spacing.lg} 0; + padding-bottom: ${theme.spacing(2)}; width: 100%; } `, From 49e653dbaf0f9884d5dbf25f27f1a82d537598da Mon Sep 17 00:00:00 2001 From: "Grot (@grafanabot)" <43478413+grafanabot@users.noreply.github.com> Date: Wed, 25 May 2022 04:05:02 -0400 Subject: [PATCH 012/103] Prevent exception when panel has multiple queries (#49368) (#49562) This fixes the issues that when a panel has multiple queries this throws an exception if source is not part of the current frame Co-authored-by: Ryan McKinley (cherry picked from commit eab806620c84878047eabb455a342da2f9a5a944) Co-authored-by: Ward Bekker --- .../app/features/transformers/extractFields/extractFields.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/public/app/features/transformers/extractFields/extractFields.ts b/public/app/features/transformers/extractFields/extractFields.ts index 81628b595ed..ede77024b40 100644 --- a/public/app/features/transformers/extractFields/extractFields.ts +++ b/public/app/features/transformers/extractFields/extractFields.ts @@ -41,7 +41,8 @@ function addExtractedFields(frame: DataFrame, options: ExtractFieldsOptions): Da } const source = findField(frame, options.source); if (!source) { - throw new Error('json field not found'); + // this case can happen when there are multiple queries + return frame; } const ext = fieldExtractors.getIfExists(options.format ?? FieldExtractorID.Auto); From 312b57aa76a1e2dd06d77f94fa0a3ace05e6b37b Mon Sep 17 00:00:00 2001 From: "Grot (@grafanabot)" <43478413+grafanabot@users.noreply.github.com> Date: Wed, 25 May 2022 04:17:56 -0400 Subject: [PATCH 013/103] Login: Fix AuthInfo update process (#49556) (#49565) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Login: Fix AuthInfo update process * Fix GoDoc * Add regression test for oauth info overwrite Co-authored-by: jguer (cherry picked from commit 73a729bbe8f77e0c120e9a0cf83daf84d6c4da53) Co-authored-by: Joan López de la Franca Beltran <5459617+joanlopez@users.noreply.github.com> --- .../login/authinfoservice/database/database.go | 6 +++--- pkg/services/login/authinfoservice/user_auth_test.go | 12 ++++++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/pkg/services/login/authinfoservice/database/database.go b/pkg/services/login/authinfoservice/database/database.go index b2c2ea070bc..434479d70a3 100644 --- a/pkg/services/login/authinfoservice/database/database.go +++ b/pkg/services/login/authinfoservice/database/database.go @@ -146,8 +146,8 @@ func (s *AuthInfoStore) SetAuthInfo(ctx context.Context, cmd *models.SetAuthInfo }) } -// UpdateAuthInfo updates the auth info for the user with the latest date. Avoids overlapping entries hiding -// the last used one (ex: LDAP->SAML->LDAP) +// UpdateAuthInfoDate updates the auth info for the user with the latest date. +// Avoids overlapping entries hiding the last used one (ex: LDAP->SAML->LDAP). func (s *AuthInfoStore) UpdateAuthInfoDate(ctx context.Context, authInfo *models.UserAuth) error { authInfo.Created = GetTime() @@ -157,7 +157,7 @@ func (s *AuthInfoStore) UpdateAuthInfoDate(ctx context.Context, authInfo *models AuthModule: authInfo.AuthModule, } return s.sqlStore.WithTransactionalDbSession(ctx, func(sess *sqlstore.DBSession) error { - _, err := sess.Update(authInfo, cond) + _, err := sess.Cols("created").Update(authInfo, cond) return err }) } diff --git a/pkg/services/login/authinfoservice/user_auth_test.go b/pkg/services/login/authinfoservice/user_auth_test.go index 2e07458b436..e03640be847 100644 --- a/pkg/services/login/authinfoservice/user_auth_test.go +++ b/pkg/services/login/authinfoservice/user_auth_test.go @@ -278,6 +278,16 @@ func TestUserAuth(t *testing.T) { // Now reuse first auth module and make sure it's updated to the most recent database.GetTime = func() time.Time { return fixedTime } + + // add oauth info to auth_info to make sure update date does not overwrite it + updateAuthCmd := &models.UpdateAuthInfoCommand{UserId: user.Id, AuthModule: "test1", AuthId: "test1", OAuthToken: &oauth2.Token{ + AccessToken: "access_token", + TokenType: "token_type", + RefreshToken: "refresh_token", + Expiry: fixedTime, + }} + err = authInfoStore.UpdateAuthInfo(context.Background(), updateAuthCmd) + require.Nil(t, err) user, err = srv.LookupAndUpdate(context.Background(), queryOne) require.Nil(t, err) @@ -287,6 +297,8 @@ func TestUserAuth(t *testing.T) { require.Nil(t, err) require.Equal(t, "test1", getAuthQuery.Result.AuthModule) + // make sure oauth info is not overwritten by update date + require.Equal(t, "access_token", getAuthQuery.Result.OAuthAccessToken) // Now reuse second auth module and make sure it's updated to the most recent database.GetTime = func() time.Time { return fixedTime.AddDate(0, 0, 1) } From 6ab3724a12862cb16b72a596ed12a69daea5608b Mon Sep 17 00:00:00 2001 From: "Grot (@grafanabot)" <43478413+grafanabot@users.noreply.github.com> Date: Wed, 25 May 2022 06:07:59 -0400 Subject: [PATCH 014/103] AngularSupport: Update description for angular_support_enabled config option (#49569) (#49574) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * AngularSupport: Update description for angular_support_enabled config option * Update angular deprecration plan doc * Update * Update article * Updated (cherry picked from commit e1909fe74b2b67dd91c80ac6ec4075adaf3c7dc7) Co-authored-by: Torkel Ödegaard --- conf/defaults.ini | 2 +- conf/sample.ini | 2 +- docs/sources/administration/configuration.md | 2 +- docs/sources/developers/angular_deprecation.md | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/conf/defaults.ini b/conf/defaults.ini index 1fa6c669021..3b4edffb543 100644 --- a/conf/defaults.ini +++ b/conf/defaults.ini @@ -305,7 +305,7 @@ content_security_policy = false # $ROOT_PATH is server.root_url without the protocol. content_security_policy_template = """script-src 'self' 'unsafe-eval' 'unsafe-inline' 'strict-dynamic' $NONCE;object-src 'none';font-src 'self';style-src 'self' 'unsafe-inline' blob:;img-src * data:;base-uri 'self';connect-src 'self' grafana.com ws://$ROOT_PATH wss://$ROOT_PATH;manifest-src 'self';media-src 'none';form-action 'self';""" -# Controls if old angular plugins are supported or not. This will be disabled by default in Grafana v9. +# Controls if old angular plugins are supported or not. This will be disabled by default in future release angular_support_enabled = true [security.encryption] diff --git a/conf/sample.ini b/conf/sample.ini index 2467dc3a22c..8d8fd35ae33 100644 --- a/conf/sample.ini +++ b/conf/sample.ini @@ -305,7 +305,7 @@ # $ROOT_PATH is server.root_url without the protocol. ;content_security_policy_template = """script-src 'self' 'unsafe-eval' 'unsafe-inline' 'strict-dynamic' $NONCE;object-src 'none';font-src 'self';style-src 'self' 'unsafe-inline' blob:;img-src * data:;base-uri 'self';connect-src 'self' grafana.com ws://$ROOT_PATH wss://$ROOT_PATH;manifest-src 'self';media-src 'none';form-action 'self';""" -# Controls if old angular plugins are supported or not. This will be disabled by default in Grafana v9. +# Controls if old angular plugins are supported or not. This will be disabled by default in future release ;angular_support_enabled = true [security.encryption] diff --git a/docs/sources/administration/configuration.md b/docs/sources/administration/configuration.md index a77fe93edae..c121b89bf87 100644 --- a/docs/sources/administration/configuration.md +++ b/docs/sources/administration/configuration.md @@ -602,7 +602,7 @@ Set Content Security Policy template used when adding the Content-Security-Polic ### angular_support_enabled -This currently defaults to `true` but will in Grafana v9 default to `false`. When set to false the angular framework and support components will not be loaded. This means that +This currently defaults to `true` but will default to `false` in a future release. When set to false the angular framework and support components will not be loaded. This means that all plugins and core features that depend on angular support will stop working. Current core features that will stop working: diff --git a/docs/sources/developers/angular_deprecation.md b/docs/sources/developers/angular_deprecation.md index f908928a606..e03031f1748 100644 --- a/docs/sources/developers/angular_deprecation.md +++ b/docs/sources/developers/angular_deprecation.md @@ -7,7 +7,7 @@ weight = 500 # Angular support deprecation -Angular plugin support is deprecated, and it will be removed in a future release. There are still many community plugins that depend on Grafana’s angular plugin support for them to work. The same is true for many internal (private) plugins developed over the years by Grafana users. Grafana version 9 will have a server configuration option, global for the whole instance, that will control if angular plugin support is available or not. By default, angular plugin support will be disabled. +Angular plugin support is deprecated, and it will be removed in a future release. There are still many community plugins that depend on Grafana’s angular plugin support for them to work. The same is true for many internal (private) plugins developed over the years by Grafana users. Grafana version 9 will have a server configuration option, global for the whole instance, that will control if angular plugin support is available or not. By default angular support is still enabled but this will soon change as we complete the migration of all angular code in the core product. ## Why are we deprecating angular support? @@ -15,7 +15,7 @@ AngularJS is an old frontend framework that stopped active development many year ## When will angular plugins stop working? -In Grafana version 9 coming in June 2022, all angular plugins will stop working unless a new server configuration option is turned on. If you still depend on community or internally developed plugins that require AngularJS then you will have to turn this option on. +We hope to migrate the last remaining angular code in core Grafana later this year. Then the setting enable_angular_support can be disable by default. This will make all angular plugins stop working. If you still depend on community or internally developed plugins that require AngularJS then you will have to enable this option. This is a good time to start working on migrating plugins to React. From 8d6b47f11de25adfe15e9fa8ecb2a1f9667acaa6 Mon Sep 17 00:00:00 2001 From: "Grot (@grafanabot)" <43478413+grafanabot@users.noreply.github.com> Date: Wed, 25 May 2022 07:19:17 -0400 Subject: [PATCH 015/103] don't close drawer when clicking a select within it (#49583) (#49600) (cherry picked from commit 5455174de58b51226c8cba90074d0ca5b5e2d236) Co-authored-by: Ashley Harrison --- packages/grafana-ui/src/components/Drawer/Drawer.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/grafana-ui/src/components/Drawer/Drawer.tsx b/packages/grafana-ui/src/components/Drawer/Drawer.tsx index 55b61dc0cd5..087cd720419 100644 --- a/packages/grafana-ui/src/components/Drawer/Drawer.tsx +++ b/packages/grafana-ui/src/components/Drawer/Drawer.tsx @@ -54,7 +54,7 @@ export function Drawer({ const { dialogProps, titleProps } = useDialog({}, overlayRef); const { overlayProps } = useOverlay( { - isDismissable: true, + isDismissable: false, isOpen, onClose, }, From fc79360e1539545755e56b5697f35822676a2a8a Mon Sep 17 00:00:00 2001 From: "Grot (@grafanabot)" <43478413+grafanabot@users.noreply.github.com> Date: Wed, 25 May 2022 07:28:34 -0400 Subject: [PATCH 016/103] Access control: fix a typo for folder actions (#49582) (#49601) * fix a typo for folder actions * update dashboard action too (cherry picked from commit 8d313f54e285b723d6daf205f59170fb77533d60) Co-authored-by: Ieva --- public/app/types/accessControl.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/public/app/types/accessControl.ts b/public/app/types/accessControl.ts index 22bcf3d14c0..d98c1127f4c 100644 --- a/public/app/types/accessControl.ts +++ b/public/app/types/accessControl.ts @@ -71,14 +71,14 @@ export enum AccessControlAction { DashboardsDelete = 'dashboards:delete', DashboardsCreate = 'dashboards:create', DashboardsPermissionsRead = 'dashboards.permissions:read', - DashboardsPermissionsWrite = 'dashboards.permissions:read', + DashboardsPermissionsWrite = 'dashboards.permissions:write', FoldersRead = 'folders:read', - FoldersWrite = 'folders:read', + FoldersWrite = 'folders:write', FoldersDelete = 'folders:delete', FoldersCreate = 'folders:create', FoldersPermissionsRead = 'folders.permissions:read', - FoldersPermissionsWrite = 'folders.permissions:read', + FoldersPermissionsWrite = 'folders.permissions:write', // Alerting rules AlertingRuleCreate = 'alert.rules:create', From ef458b79d08c5939ea0a414e3372d490d6b20d7b Mon Sep 17 00:00:00 2001 From: "Grot (@grafanabot)" <43478413+grafanabot@users.noreply.github.com> Date: Wed, 25 May 2022 08:16:14 -0400 Subject: [PATCH 017/103] AccessControl: Pass current org id to UsersTable (#49584) (#49606) * Pass current org id to UsersTable * Mock contextSrv and update snapshot (cherry picked from commit ef6b53ed23763ffa3bc1e918fb332891fbef14c2) Co-authored-by: Karl Persson --- .betterer.results | 2 +- public/app/features/users/UsersListPage.test.tsx | 6 ++++++ public/app/features/users/UsersListPage.tsx | 2 ++ .../users/__snapshots__/UsersListPage.test.tsx.snap | 1 + 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/.betterer.results b/.betterer.results index 7c54b12b30d..59543858a39 100644 --- a/.betterer.results +++ b/.betterer.results @@ -203,7 +203,7 @@ exports[`no enzyme tests`] = { "public/app/features/teams/TeamSettings.test.tsx:2043271249": [ [0, 19, 13, "RegExp match", "2409514259"] ], - "public/app/features/users/UsersListPage.test.tsx:3908145117": [ + "public/app/features/users/UsersListPage.test.tsx:2518052139": [ [0, 19, 13, "RegExp match", "2409514259"] ], "public/app/features/users/UsersTable.test.tsx:263958312": [ diff --git a/public/app/features/users/UsersListPage.test.tsx b/public/app/features/users/UsersListPage.test.tsx index bc334b6287a..e5a2837e98f 100644 --- a/public/app/features/users/UsersListPage.test.tsx +++ b/public/app/features/users/UsersListPage.test.tsx @@ -12,6 +12,12 @@ jest.mock('../../core/app_events', () => ({ emit: jest.fn(), })); +jest.mock('app/core/services/context_srv', () => ({ + contextSrv: { + user: { orgId: 1 }, + }, +})); + const setup = (propOverrides?: object) => { const props: Props = { navModel: { diff --git a/public/app/features/users/UsersListPage.tsx b/public/app/features/users/UsersListPage.tsx index f53b3f47b9f..803deead884 100644 --- a/public/app/features/users/UsersListPage.tsx +++ b/public/app/features/users/UsersListPage.tsx @@ -5,6 +5,7 @@ import { renderMarkdown } from '@grafana/data'; import { HorizontalGroup, Pagination, VerticalGroup } from '@grafana/ui'; import Page from 'app/core/components/Page/Page'; import { getNavModel } from 'app/core/selectors/navModel'; +import { contextSrv } from 'app/core/services/context_srv'; import { OrgUser, OrgRole, StoreState } from 'app/types'; import InviteesTable from '../invites/InviteesTable'; @@ -106,6 +107,7 @@ export class UsersListPage extends PureComponent { this.onRoleChange(role, user)} onRemoveUser={(user) => this.props.removeUser(user.userId)} /> diff --git a/public/app/features/users/__snapshots__/UsersListPage.test.tsx.snap b/public/app/features/users/__snapshots__/UsersListPage.test.tsx.snap index 08b3ba0ec22..01d1dbeeba2 100644 --- a/public/app/features/users/__snapshots__/UsersListPage.test.tsx.snap +++ b/public/app/features/users/__snapshots__/UsersListPage.test.tsx.snap @@ -26,6 +26,7 @@ exports[`Render should render List page 1`] = ` Date: Wed, 25 May 2022 08:17:14 -0400 Subject: [PATCH 018/103] AccessControl: Grant data source reader to all users when running oss (#49514) (#49604) * grant data source reader to all users when running oss or enterprise without license * fix asserts in alerting tests * add oss licensing service for test setup * fix tests to pass in enterprise * lint * fix tests * set setting.IsEnterprise flag for tests Co-authored-by: Yuriy Tseretyan (cherry picked from commit 1796a1d27724a2e3818b83f37221a4a99642b451) Co-authored-by: Karl Persson --- pkg/api/accesscontrol.go | 24 ++-- pkg/api/common_test.go | 2 + .../api/alerting/api_alertmanager_test.go | 107 ++++++++++++------ pkg/tests/testinfra/testinfra.go | 2 + 4 files changed, 83 insertions(+), 52 deletions(-) diff --git a/pkg/api/accesscontrol.go b/pkg/api/accesscontrol.go index 4d2f33a9516..82c82670bfc 100644 --- a/pkg/api/accesscontrol.go +++ b/pkg/api/accesscontrol.go @@ -94,6 +94,11 @@ func (hs *HTTPServer) declareFixedRoles() error { Grants: []string{string(models.ROLE_ADMIN)}, } + // when running oss or enterprise without a license all users should be able to query data sources + if !hs.License.FeatureEnabled("accesscontrol.enforcement") { + datasourcesReaderRole.Grants = []string{string(models.ROLE_VIEWER)} + } + datasourcesWriterRole := ac.RoleRegistration{ Role: ac.RoleDTO{ Version: 3, @@ -135,21 +140,6 @@ func (hs *HTTPServer) declareFixedRoles() error { Grants: []string{string(models.ROLE_VIEWER)}, } - datasourcesCompatibilityReaderRole := ac.RoleRegistration{ - Role: ac.RoleDTO{ - Version: 3, - Name: "fixed:datasources:compatibility:querier", - DisplayName: "Data source compatibility querier", - Description: "Only used for open source compatibility. Query data sources.", - Group: "Infrequently used", - Permissions: []ac.Permission{ - {Action: datasources.ActionQuery}, - {Action: datasources.ActionRead}, - }, - }, - Grants: []string{string(models.ROLE_VIEWER)}, - } - apikeyReaderRole := ac.RoleRegistration{ Role: ac.RoleDTO{ Version: 1, @@ -419,8 +409,8 @@ func (hs *HTTPServer) declareFixedRoles() error { } return hs.AccessControl.DeclareFixedRoles( - provisioningWriterRole, datasourcesReaderRole, datasourcesWriterRole, datasourcesIdReaderRole, - datasourcesCompatibilityReaderRole, orgReaderRole, orgWriterRole, + provisioningWriterRole, datasourcesReaderRole, datasourcesWriterRole, + datasourcesIdReaderRole, orgReaderRole, orgWriterRole, orgMaintainerRole, teamsCreatorRole, teamsWriterRole, datasourcesExplorerRole, annotationsReaderRole, dashboardAnnotationsWriterRole, annotationsWriterRole, dashboardsCreatorRole, dashboardsReaderRole, dashboardsWriterRole, diff --git a/pkg/api/common_test.go b/pkg/api/common_test.go index 012380ef0bf..6e0f28266a7 100644 --- a/pkg/api/common_test.go +++ b/pkg/api/common_test.go @@ -33,6 +33,7 @@ import ( dashboardservice "github.com/grafana/grafana/pkg/services/dashboards/service" "github.com/grafana/grafana/pkg/services/featuremgmt" "github.com/grafana/grafana/pkg/services/ldap" + "github.com/grafana/grafana/pkg/services/licensing" "github.com/grafana/grafana/pkg/services/login/loginservice" "github.com/grafana/grafana/pkg/services/login/logintest" "github.com/grafana/grafana/pkg/services/preference/preftest" @@ -371,6 +372,7 @@ func setupHTTPServerWithCfgDb(t *testing.T, useFakeAccessControl, enableAccessCo QuotaService: "a.QuotaService{Cfg: cfg}, RouteRegister: routeRegister, SQLStore: store, + License: &licensing.OSSLicensingService{}, searchUsersService: searchusers.ProvideUsersService(db, filters.ProvideOSSSearchUserFilter()), dashboardService: dashboardservice.ProvideDashboardService( cfg, dashboardsStore, nil, features, diff --git a/pkg/tests/api/alerting/api_alertmanager_test.go b/pkg/tests/api/alerting/api_alertmanager_test.go index 52d2b5db713..d7ff048ab13 100644 --- a/pkg/tests/api/alerting/api_alertmanager_test.go +++ b/pkg/tests/api/alerting/api_alertmanager_test.go @@ -22,6 +22,7 @@ import ( ngmodels "github.com/grafana/grafana/pkg/services/ngalert/models" ngstore "github.com/grafana/grafana/pkg/services/ngalert/store" "github.com/grafana/grafana/pkg/services/sqlstore" + "github.com/grafana/grafana/pkg/setting" "github.com/grafana/grafana/pkg/tests/testinfra" ) @@ -2279,9 +2280,9 @@ func TestEval(t *testing.T) { testCases := []struct { desc string payload string - expectedStatusCode int - expectedResponse string - expectedMessage string + expectedStatusCode func() int + expectedResponse func() string + expectedMessage func() string }{ { desc: "alerting condition", @@ -2307,8 +2308,10 @@ func TestEval(t *testing.T) { } } `, - expectedStatusCode: http.StatusOK, - expectedResponse: `{ + expectedMessage: func() string { return "" }, + expectedStatusCode: func() int { return http.StatusOK }, + expectedResponse: func() string { + return `{ "instances": [ { "schema": { @@ -2342,7 +2345,8 @@ func TestEval(t *testing.T) { } } ] - }`, + }` + }, }, { desc: "normal condition", @@ -2368,8 +2372,10 @@ func TestEval(t *testing.T) { } } `, - expectedStatusCode: http.StatusOK, - expectedResponse: `{ + expectedMessage: func() string { return "" }, + expectedStatusCode: func() int { return http.StatusOK }, + expectedResponse: func() string { + return `{ "instances": [ { "schema": { @@ -2403,7 +2409,8 @@ func TestEval(t *testing.T) { } } ] - }`, + }` + }, }, { desc: "condition not found in any query or expression", @@ -2429,8 +2436,11 @@ func TestEval(t *testing.T) { } } `, - expectedStatusCode: http.StatusBadRequest, - expectedMessage: "invalid condition: condition B not found in any query or expression: it should be one of: [A]", + expectedStatusCode: func() int { return http.StatusBadRequest }, + expectedMessage: func() string { + return "invalid condition: condition B not found in any query or expression: it should be one of: [A]" + }, + expectedResponse: func() string { return "" }, }, { desc: "unknown query datasource", @@ -2454,8 +2464,19 @@ func TestEval(t *testing.T) { } } `, - expectedStatusCode: http.StatusUnauthorized, - expectedMessage: "user is not authorized to query one or many data sources used by the rule", + expectedStatusCode: func() int { + if setting.IsEnterprise { + return http.StatusUnauthorized + } + return http.StatusBadRequest + }, + expectedMessage: func() string { + if setting.IsEnterprise { + return "user is not authorized to query one or many data sources used by the rule" + } + return "invalid condition: invalid query A: data source not found: unknown" + }, + expectedResponse: func() string { return "" }, }, } @@ -2476,12 +2497,12 @@ func TestEval(t *testing.T) { err = json.Unmarshal(b, &res) require.NoError(t, err) - assert.Equal(t, tc.expectedStatusCode, resp.StatusCode) - if tc.expectedResponse != "" { - require.JSONEq(t, tc.expectedResponse, string(b)) + assert.Equal(t, tc.expectedStatusCode(), resp.StatusCode) + if tc.expectedResponse() != "" { + require.JSONEq(t, tc.expectedResponse(), string(b)) } - if tc.expectedMessage != "" { - assert.Equal(t, tc.expectedMessage, res.Message) + if tc.expectedMessage() != "" { + assert.Equal(t, tc.expectedMessage(), res.Message) assert.NotEmpty(t, res.TraceID) } }) @@ -2491,9 +2512,9 @@ func TestEval(t *testing.T) { testCases = []struct { desc string payload string - expectedStatusCode int - expectedResponse string - expectedMessage string + expectedStatusCode func() int + expectedResponse func() string + expectedMessage func() string }{ { desc: "alerting condition", @@ -2516,8 +2537,10 @@ func TestEval(t *testing.T) { "now": "2021-04-11T14:38:14Z" } `, - expectedStatusCode: http.StatusOK, - expectedResponse: `{ + expectedMessage: func() string { return "" }, + expectedStatusCode: func() int { return http.StatusOK }, + expectedResponse: func() string { + return `{ "results": { "A": { "frames": [ @@ -2546,7 +2569,8 @@ func TestEval(t *testing.T) { ] } } - }`, + }` + }, }, { desc: "normal condition", @@ -2569,8 +2593,10 @@ func TestEval(t *testing.T) { "now": "2021-04-11T14:38:14Z" } `, - expectedStatusCode: http.StatusOK, - expectedResponse: `{ + expectedMessage: func() string { return "" }, + expectedStatusCode: func() int { return http.StatusOK }, + expectedResponse: func() string { + return `{ "results": { "A": { "frames": [ @@ -2599,7 +2625,8 @@ func TestEval(t *testing.T) { ] } } - }`, + }` + }, }, { desc: "unknown query datasource", @@ -2620,8 +2647,19 @@ func TestEval(t *testing.T) { "now": "2021-04-11T14:38:14Z" } `, - expectedStatusCode: http.StatusUnauthorized, - expectedMessage: "user is not authorized to query one or many data sources used by the rule", + expectedResponse: func() string { return "" }, + expectedStatusCode: func() int { + if setting.IsEnterprise { + return http.StatusUnauthorized + } + return http.StatusBadRequest + }, + expectedMessage: func() string { + if setting.IsEnterprise { + return "user is not authorized to query one or many data sources used by the rule" + } + return "invalid queries or expressions: invalid query A: data source not found: unknown" + }, }, } @@ -2642,13 +2680,12 @@ func TestEval(t *testing.T) { err = json.Unmarshal(b, &res) require.NoError(t, err) - assert.Equal(t, tc.expectedStatusCode, resp.StatusCode) - if tc.expectedResponse != "" { - require.JSONEq(t, tc.expectedResponse, string(b)) + assert.Equal(t, tc.expectedStatusCode(), resp.StatusCode) + if tc.expectedResponse() != "" { + require.JSONEq(t, tc.expectedResponse(), string(b)) } - - if tc.expectedMessage != "" { - require.Equal(t, tc.expectedMessage, res.Message) + if tc.expectedMessage() != "" { + require.Equal(t, tc.expectedMessage(), res.Message) require.NotEmpty(t, res.TraceID) } }) diff --git a/pkg/tests/testinfra/testinfra.go b/pkg/tests/testinfra/testinfra.go index 5ebd80e79ba..1213bf8bba5 100644 --- a/pkg/tests/testinfra/testinfra.go +++ b/pkg/tests/testinfra/testinfra.go @@ -17,6 +17,7 @@ import ( "gopkg.in/ini.v1" "github.com/grafana/grafana/pkg/api" + "github.com/grafana/grafana/pkg/extensions" "github.com/grafana/grafana/pkg/infra/fs" "github.com/grafana/grafana/pkg/models" "github.com/grafana/grafana/pkg/server" @@ -35,6 +36,7 @@ func StartGrafanaEnv(t *testing.T, grafDir, cfgPath string) (string, *server.Tes t.Helper() ctx := context.Background() + setting.IsEnterprise = extensions.IsEnterprise listener, err := net.Listen("tcp", "127.0.0.1:0") require.NoError(t, err) cmdLineArgs := setting.CommandLineArgs{Config: cfgPath, HomePath: grafDir} From 7106106e3b07711df3945a7f5bf16f6998bbec2a Mon Sep 17 00:00:00 2001 From: "Grot (@grafanabot)" <43478413+grafanabot@users.noreply.github.com> Date: Wed, 25 May 2022 08:21:18 -0400 Subject: [PATCH 019/103] Chore: Convert a test from enzyme to testing library (#49492) (#49576) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit f93ad85b0892a851ef70e8457e568eee6e134639) Co-authored-by: Piotr Jamróz --- .betterer.results | 3 --- .../RichHistory/RichHistoryStarredTab.test.tsx | 18 +++++++++--------- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/.betterer.results b/.betterer.results index 59543858a39..14981d93b13 100644 --- a/.betterer.results +++ b/.betterer.results @@ -173,9 +173,6 @@ exports[`no enzyme tests`] = { "public/app/features/dimensions/editors/ThresholdsEditor/ThresholdsEditor.test.tsx:4164297658": [ [0, 17, 13, "RegExp match", "2409514259"] ], - "public/app/features/explore/RichHistory/RichHistoryStarredTab.test.tsx:523695501": [ - [0, 17, 13, "RegExp match", "2409514259"] - ], "public/app/features/folders/FolderSettingsPage.test.tsx:1109052730": [ [0, 19, 13, "RegExp match", "2409514259"] ], diff --git a/public/app/features/explore/RichHistory/RichHistoryStarredTab.test.tsx b/public/app/features/explore/RichHistory/RichHistoryStarredTab.test.tsx index e0434713f69..4cedf1e8e8f 100644 --- a/public/app/features/explore/RichHistory/RichHistoryStarredTab.test.tsx +++ b/public/app/features/explore/RichHistory/RichHistoryStarredTab.test.tsx @@ -1,4 +1,4 @@ -import { mount } from 'enzyme'; +import { render } from '@testing-library/react'; import React from 'react'; import { SortOrder } from 'app/core/utils/richHistory'; @@ -44,27 +44,27 @@ const setup = (activeDatasourceOnly = false) => { }, }; - const wrapper = mount(); - return wrapper; + const container = render(); + return container; }; describe('RichHistoryStarredTab', () => { describe('sorter', () => { it('should render sorter', () => { - const wrapper = setup(); - expect(wrapper.find({ 'aria-label': 'Sort queries' })).toHaveLength(1); + const container = setup(); + expect(container.queryByLabelText('Sort queries')).toBeInTheDocument(); }); }); describe('select datasource', () => { it('should render select datasource if activeDatasourceOnly is false', () => { - const wrapper = setup(); - expect(wrapper.find({ 'aria-label': 'Filter queries for data sources(s)' }).exists()).toBeTruthy(); + const container = setup(); + expect(container.queryByLabelText('Filter queries for data sources(s)')).toBeInTheDocument(); }); it('should not render select datasource if activeDatasourceOnly is true', () => { - const wrapper = setup(true); - expect(wrapper.find({ 'aria-label': 'Filter queries for data sources(s)' }).exists()).toBeFalsy(); + const container = setup(true); + expect(container.queryByLabelText('Filter queries for data sources(s)')).not.toBeInTheDocument(); }); }); }); From c0286409c6fa7a1c94050c7a02425033bc6bc0e5 Mon Sep 17 00:00:00 2001 From: "Grot (@grafanabot)" <43478413+grafanabot@users.noreply.github.com> Date: Wed, 25 May 2022 08:22:24 -0400 Subject: [PATCH 020/103] Query History: Track query history migration failures (#49560) (#49577) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit a67add52399e1ad7914a3d0d23a1f198c18f80b9) Co-authored-by: Piotr Jamróz --- public/app/core/utils/richHistory.test.ts | 17 ++++++++++++++--- public/app/core/utils/richHistory.ts | 13 +++++++++---- public/app/features/explore/state/history.ts | 7 ++++--- 3 files changed, 27 insertions(+), 10 deletions(-) diff --git a/public/app/core/utils/richHistory.test.ts b/public/app/core/utils/richHistory.test.ts index cff9ebe501e..9fbfe9b8a72 100644 --- a/public/app/core/utils/richHistory.test.ts +++ b/public/app/core/utils/richHistory.test.ts @@ -15,6 +15,7 @@ import { deleteQueryInRichHistory, migrateQueryHistoryFromLocalStorage, SortOrder, + LocalStorageMigrationStatus, } from './richHistory'; const richHistoryStorageMock: RichHistoryStorage = {} as RichHistoryStorage; @@ -187,13 +188,23 @@ describe('richHistory', () => { const history = { richHistory: [{ id: 'test' }, { id: 'test2' }], total: 2 }; richHistoryLocalStorageMock.getRichHistory.mockReturnValue(history); - await migrateQueryHistoryFromLocalStorage(); + const migrationResult = await migrateQueryHistoryFromLocalStorage(); expect(richHistoryRemoteStorageMock.migrate).toBeCalledWith(history.richHistory); + expect(migrationResult.status).toBe(LocalStorageMigrationStatus.Successful); + expect(migrationResult.error).toBeUndefined(); }); it('does not migrate if there are no entries', async () => { - richHistoryLocalStorageMock.getRichHistory.mockReturnValue([]); - await migrateQueryHistoryFromLocalStorage(); + richHistoryLocalStorageMock.getRichHistory.mockReturnValue({ richHistory: [] }); + const migrationResult = await migrateQueryHistoryFromLocalStorage(); expect(richHistoryRemoteStorageMock.migrate).not.toBeCalled(); + expect(migrationResult.status).toBe(LocalStorageMigrationStatus.NotNeeded); + expect(migrationResult.error).toBeUndefined(); + }); + it('propagates thrown errors', async () => { + richHistoryLocalStorageMock.getRichHistory.mockRejectedValue(new Error('migration failed')); + const migrationResult = await migrateQueryHistoryFromLocalStorage(); + expect(migrationResult.status).toBe(LocalStorageMigrationStatus.Failed); + expect(migrationResult.error?.message).toBe('migration failed'); }); }); diff --git a/public/app/core/utils/richHistory.ts b/public/app/core/utils/richHistory.ts index 2b86d4305fd..560aa4a95a5 100644 --- a/public/app/core/utils/richHistory.ts +++ b/public/app/core/utils/richHistory.ts @@ -131,7 +131,12 @@ export enum LocalStorageMigrationStatus { NotNeeded = 'not-needed', } -export async function migrateQueryHistoryFromLocalStorage(): Promise { +export interface LocalStorageMigrationResult { + status: LocalStorageMigrationStatus; + error?: Error; +} + +export async function migrateQueryHistoryFromLocalStorage(): Promise { const richHistoryLocalStorage = new RichHistoryLocalStorage(); const richHistoryRemoteStorage = new RichHistoryRemoteStorage(); @@ -145,14 +150,14 @@ export async function migrateQueryHistoryFromLocalStorage(): Promise => { // the migration attempt happens only once per session, and the user is informed about the failure // in a way that can help with potential investigation. if (config.queryHistoryEnabled && !queriesMigrated && !migrationFailedDuringThisSession) { - const migrationStatus = await migrateQueryHistoryFromLocalStorage(); - if (migrationStatus === LocalStorageMigrationStatus.Failed) { + const migrationResult = await migrateQueryHistoryFromLocalStorage(); + if (migrationResult.status === LocalStorageMigrationStatus.Failed) { dispatch(richHistoryMigrationFailedAction()); + logError(migrationResult.error!, { explore: { event: 'QueryHistoryMigrationFailed' } }); } else { store.set(RICH_HISTORY_SETTING_KEYS.migrated, true); } From 823a3bfbf9a3c39fb9a195f4ba336f75774ad95a Mon Sep 17 00:00:00 2001 From: "Grot (@grafanabot)" <43478413+grafanabot@users.noreply.github.com> Date: Wed, 25 May 2022 08:57:20 -0400 Subject: [PATCH 021/103] Prometheus: Migrate annotation editor to react (#48814) (#49518) * Modify the annotation support api * Migrate annotation editor component * Update public/app/features/annotations/standardAnnotationSupport.ts Co-authored-by: Ryan McKinley * Move the escape hatches out of the public API * Fix props transforms * Break import cycle Co-authored-by: Ryan McKinley (cherry picked from commit 4124294011a54fa3bf209dcf2cf8b38a71abf1d4) Co-authored-by: Andrej Ocenas --- .../grafana-data/src/types/annotations.ts | 10 +- .../StandardAnnotationQueryEditor.tsx | 21 ++- .../annotations/standardAnnotationSupport.ts | 28 +++- .../AnnotationsQueryRunner.ts | 2 +- .../LegacyAnnotationQueryRunner.ts | 5 + .../components/LokiQueryEditorSelector.tsx | 10 +- .../components/AnnotationQueryEditor.tsx | 121 ++++++++++++++++++ .../datasource/prometheus/datasource.tsx | 9 ++ .../components/LabelParamEditor.tsx | 5 +- .../PromQueryBuilderOptions.test.tsx | 8 ++ .../components/PromQueryBuilderOptions.tsx | 105 +++++++++------ .../components/PromQueryEditorSelector.tsx | 62 +++++++-- .../shared/QueryEditorModeToggle.tsx | 10 +- 13 files changed, 324 insertions(+), 72 deletions(-) create mode 100644 public/app/plugins/datasource/prometheus/components/AnnotationQueryEditor.tsx diff --git a/packages/grafana-data/src/types/annotations.ts b/packages/grafana-data/src/types/annotations.ts index e701b6b3841..f5c3a72c51b 100644 --- a/packages/grafana-data/src/types/annotations.ts +++ b/packages/grafana-data/src/types/annotations.ts @@ -77,6 +77,12 @@ export interface AnnotationEventFieldMapping { } export type AnnotationEventMappings = Partial>; +type AnnotationQueryEditorProps = QueryEditorProps & { + // Needs to be optional otherwise component not using these cannot be used, even though they are passed on and can be + // just ignored if not used. + annotation?: AnnotationQuery; + onAnnotationChange?: (annotation: AnnotationQuery) => void; +}; /** * Since Grafana 7.2 @@ -86,7 +92,7 @@ export type AnnotationEventMappings = Partial> { /** * This hook lets you manipulate any existing stored values before running them though the processor. - * This is particularly helpful when dealing with migrating old formats. ie query as a string vs object + * This is particularly helpful when dealing with migrating old formats. ie query as a string vs object. */ prepareAnnotation?(json: any): TAnno; @@ -105,5 +111,5 @@ export interface AnnotationSupport>; + QueryEditor?: ComponentType>; } diff --git a/public/app/features/annotations/components/StandardAnnotationQueryEditor.tsx b/public/app/features/annotations/components/StandardAnnotationQueryEditor.tsx index 3cf223b504c..3d4b60e2fad 100644 --- a/public/app/features/annotations/components/StandardAnnotationQueryEditor.tsx +++ b/public/app/features/annotations/components/StandardAnnotationQueryEditor.tsx @@ -9,7 +9,7 @@ import { getTimeSrv } from 'app/features/dashboard/services/TimeSrv'; import { PanelModel } from 'app/features/dashboard/state'; import { executeAnnotationQuery } from '../executeAnnotationQuery'; -import { standardAnnotationSupport } from '../standardAnnotationSupport'; +import { shouldUseLegacyRunner, shouldUseMappingUI, standardAnnotationSupport } from '../standardAnnotationSupport'; import { AnnotationQueryResponse } from '../types'; import { AnnotationFieldMapper } from './AnnotationResultMapper'; @@ -33,7 +33,7 @@ export default class StandardAnnotationQueryEditor extends PureComponent { const { datasource, annotation } = this.props; + if (shouldUseLegacyRunner(datasource)) { + // In the new UI the running of query is done so the data can be mapped. In the legacy annotations this does + // not exist as the annotationQuery already returns annotation events which cannot be mapped. This means that + // right now running a query for data source with legacy runner does not make much sense. + return; + } + const dashboard = getDashboardSrv().getCurrent(); if (!dashboard) { return; @@ -156,11 +163,15 @@ export default class StandardAnnotationQueryEditor extends PureComponent { + this.props.onChange(annotation); + }; + render() { const { datasource, annotation } = this.props; const { response } = this.state; - // Find the annotaiton runner + // Find the annotation runner let QueryEditor = datasource.annotations?.QueryEditor || datasource.components?.QueryEditor; if (!QueryEditor) { return
Annotations are not supported. This datasource needs to export a QueryEditor
; @@ -177,8 +188,10 @@ export default class StandardAnnotationQueryEditor extends PureComponent - {datasource.type !== 'datasource' && ( + {shouldUseMappingUI(datasource) && ( <> {this.renderStatus()} diff --git a/public/app/features/annotations/standardAnnotationSupport.ts b/public/app/features/annotations/standardAnnotationSupport.ts index 079a506a94b..710ded708ed 100644 --- a/public/app/features/annotations/standardAnnotationSupport.ts +++ b/public/app/features/annotations/standardAnnotationSupport.ts @@ -9,6 +9,7 @@ import { AnnotationQuery, AnnotationSupport, DataFrame, + DataSourceApi, Field, FieldType, getFieldDisplayName, @@ -26,6 +27,7 @@ export const standardAnnotationSupport: AnnotationSupport = { return { ...rest, target: { + refId: 'annotation_query', query, }, mappings: {}, @@ -35,14 +37,12 @@ export const standardAnnotationSupport: AnnotationSupport = { }, /** - * Convert the stored JSON model and environment to a standard data source query object. - * This query will be executed in the data source and the results converted into events. - * Returning an undefined result will quietly skip query execution + * Default will just return target from the annotation. */ prepareQuery: (anno: AnnotationQuery) => anno.target, /** - * When the standard frame > event processing is insufficient, this allows explicit control of the mappings + * Provides default processing from dataFrame to annotation events. */ processEvents: (anno: AnnotationQuery, data: DataFrame[]) => { return getAnnotationsFromData(data, anno.mappings); @@ -50,7 +50,7 @@ export const standardAnnotationSupport: AnnotationSupport = { }; /** - * Flatten all panel data into a single frame + * Flatten all frames into a single frame with mergeTransformer. */ export function singleFrameFromPanelData(): OperatorFunction { @@ -226,3 +226,21 @@ export function getAnnotationsFromData( }) ); } + +// These opt outs are here only for quicker and easier migration to react based annotations editors and because +// annotation support API needs some work to support less "standard" editors like prometheus and here it is not +// polluting public API. + +/** + * Opt out of using the default mapping functionality on frontend. + */ +export function shouldUseMappingUI(datasource: DataSourceApi): boolean { + return datasource.type !== 'prometheus'; +} + +/** + * Use legacy runner. Used only as an escape hatch for easier transition to React based annotation editor. + */ +export function shouldUseLegacyRunner(datasource: DataSourceApi): boolean { + return datasource.type === 'prometheus'; +} diff --git a/public/app/features/query/state/DashboardQueryRunner/AnnotationsQueryRunner.ts b/public/app/features/query/state/DashboardQueryRunner/AnnotationsQueryRunner.ts index 4eadff44e59..05b5bf7a3bc 100644 --- a/public/app/features/query/state/DashboardQueryRunner/AnnotationsQueryRunner.ts +++ b/public/app/features/query/state/DashboardQueryRunner/AnnotationsQueryRunner.ts @@ -15,7 +15,7 @@ export class AnnotationsQueryRunner implements AnnotationQueryRunner { return false; } - return !Boolean(datasource.annotationQuery && !datasource.annotations); + return Boolean(!datasource.annotationQuery || datasource.annotations); } run({ annotation, datasource, dashboard, range }: AnnotationQueryRunnerOptions): Observable { diff --git a/public/app/features/query/state/DashboardQueryRunner/LegacyAnnotationQueryRunner.ts b/public/app/features/query/state/DashboardQueryRunner/LegacyAnnotationQueryRunner.ts index 5d94911b9ab..f383897f5d9 100644 --- a/public/app/features/query/state/DashboardQueryRunner/LegacyAnnotationQueryRunner.ts +++ b/public/app/features/query/state/DashboardQueryRunner/LegacyAnnotationQueryRunner.ts @@ -2,6 +2,7 @@ import { from, Observable, of } from 'rxjs'; import { catchError } from 'rxjs/operators'; import { AnnotationEvent, DataSourceApi } from '@grafana/data'; +import { shouldUseLegacyRunner } from 'app/features/annotations/standardAnnotationSupport'; import { AnnotationQueryRunner, AnnotationQueryRunnerOptions } from './types'; import { handleAnnotationQueryRunnerError } from './utils'; @@ -12,6 +13,10 @@ export class LegacyAnnotationQueryRunner implements AnnotationQueryRunner { return false; } + if (shouldUseLegacyRunner(datasource)) { + return true; + } + return Boolean(datasource.annotationQuery && !datasource.annotations); } diff --git a/public/app/plugins/datasource/loki/querybuilder/components/LokiQueryEditorSelector.tsx b/public/app/plugins/datasource/loki/querybuilder/components/LokiQueryEditorSelector.tsx index 4f43cf5e0d3..fbb5f1d4f82 100644 --- a/public/app/plugins/datasource/loki/querybuilder/components/LokiQueryEditorSelector.tsx +++ b/public/app/plugins/datasource/loki/querybuilder/components/LokiQueryEditorSelector.tsx @@ -99,7 +99,15 @@ export const LokiQueryEditorSelector = React.memo((props) > Run query - + diff --git a/public/app/plugins/datasource/prometheus/components/AnnotationQueryEditor.tsx b/public/app/plugins/datasource/prometheus/components/AnnotationQueryEditor.tsx new file mode 100644 index 00000000000..cd7bfc987d4 --- /dev/null +++ b/public/app/plugins/datasource/prometheus/components/AnnotationQueryEditor.tsx @@ -0,0 +1,121 @@ +import React from 'react'; + +import { AnnotationQuery } from '@grafana/data'; +import { EditorRow, EditorField, EditorSwitch, Space } from '@grafana/experimental'; +import { Input } from '@grafana/ui'; + +import { PromQueryEditorSelector } from '../querybuilder/components/PromQueryEditorSelector'; +import { QueryEditorMode } from '../querybuilder/shared/types'; +import { PromQuery } from '../types'; + +import { PromQueryEditorProps } from './types'; + +type Props = PromQueryEditorProps & { + annotation?: AnnotationQuery; + onAnnotationChange?: (annotation: AnnotationQuery) => void; +}; + +export function AnnotationQueryEditor(props: Props) { + // This is because of problematic typing. See AnnotationQueryEditorProps in grafana-data/annotations.ts. + const annotation = props.annotation!; + const onAnnotationChange = props.onAnnotationChange!; + return ( + <> + + onAnnotationChange({ + ...annotation, + expr: query.expr, + step: query.interval, + }) + } + uiOptions={{ + modes: { + [QueryEditorMode.Explain]: false, + [QueryEditorMode.Code]: true, + [QueryEditorMode.Builder]: true, + }, + runQueryButton: false, + options: { + exemplars: false, + type: false, + format: false, + minStep: true, + legend: false, + resolution: false, + }, + }} + /> + + + + { + onAnnotationChange({ + ...annotation, + titleFormat: event.currentTarget.value, + }); + }} + /> + + + { + onAnnotationChange({ + ...annotation, + tagKeys: event.currentTarget.value, + }); + }} + /> + + + { + onAnnotationChange({ + ...annotation, + textFormat: event.currentTarget.value, + }); + }} + /> + + + { + onAnnotationChange({ + ...annotation, + useValueForTime: event.currentTarget.value, + }); + }} + /> + + + + ); +} diff --git a/public/app/plugins/datasource/prometheus/datasource.tsx b/public/app/plugins/datasource/prometheus/datasource.tsx index 420d203c817..209112270d2 100644 --- a/public/app/plugins/datasource/prometheus/datasource.tsx +++ b/public/app/plugins/datasource/prometheus/datasource.tsx @@ -40,6 +40,7 @@ import { getTemplateSrv, TemplateSrv } from 'app/features/templating/template_sr import { PromApplication, PromApiFeatures } from 'app/types/unified-alerting-dto'; import { addLabelToQuery } from './add_label_to_query'; +import { AnnotationQueryEditor } from './components/AnnotationQueryEditor'; import PrometheusLanguageProvider from './language_provider'; import { expandRecordingRules } from './language_utils'; import { renderLegendFormat } from './legend'; @@ -119,6 +120,14 @@ export class PrometheusDatasource this.customQueryParameters = new URLSearchParams(instanceSettings.jsonData.customQueryParameters); this.variables = new PrometheusVariableSupport(this, this.templateSrv, this.timeSrv); this.exemplarsAvailable = true; + + // This needs to be here and cannot be static because of how annotations typing affects casting of data source + // objects to DataSourceApi types. + // We don't use the default processing for prometheus. + // See standardAnnotationSupport.ts/[shouldUseMappingUI|shouldUseLegacyRunner] + this.annotations = { + QueryEditor: AnnotationQueryEditor, + }; } init = async () => { diff --git a/public/app/plugins/datasource/prometheus/querybuilder/components/LabelParamEditor.tsx b/public/app/plugins/datasource/prometheus/querybuilder/components/LabelParamEditor.tsx index ab95e2798e4..941bb1e11f3 100644 --- a/public/app/plugins/datasource/prometheus/querybuilder/components/LabelParamEditor.tsx +++ b/public/app/plugins/datasource/prometheus/querybuilder/components/LabelParamEditor.tsx @@ -3,7 +3,6 @@ import React, { useState } from 'react'; import { DataSourceApi, SelectableValue, toOption } from '@grafana/data'; import { Select } from '@grafana/ui'; -import { PrometheusDatasource } from '../../datasource'; import { promQueryModeller } from '../PromQueryModeller'; import { getOperationParamId } from '../shared/operationUtils'; import { QueryBuilderLabelFilter, QueryBuilderOperationParamEditorProps } from '../shared/types'; @@ -49,8 +48,8 @@ async function loadGroupByLabels( ): Promise>> { let labels: QueryBuilderLabelFilter[] = query.labels; - // This function is used by both Prometheus and Loki and this the only difference - if (datasource instanceof PrometheusDatasource) { + // This function is used by both Prometheus and Loki and this the only difference. + if (datasource.type === 'prometheus') { labels = [{ label: '__name__', op: '=', value: query.metric }, ...query.labels]; } diff --git a/public/app/plugins/datasource/prometheus/querybuilder/components/PromQueryBuilderOptions.test.tsx b/public/app/plugins/datasource/prometheus/querybuilder/components/PromQueryBuilderOptions.test.tsx index a4df0c00284..9fc5fe05d38 100644 --- a/public/app/plugins/datasource/prometheus/querybuilder/components/PromQueryBuilderOptions.test.tsx +++ b/public/app/plugins/datasource/prometheus/querybuilder/components/PromQueryBuilderOptions.test.tsx @@ -78,6 +78,14 @@ function setup(queryOverrides: Partial = {}) { }, onRunQuery: jest.fn(), onChange: jest.fn(), + uiOptions: { + exemplars: true, + type: true, + format: true, + minStep: true, + legend: true, + resolution: true, + }, }; const { container } = render(); diff --git a/public/app/plugins/datasource/prometheus/querybuilder/components/PromQueryBuilderOptions.tsx b/public/app/plugins/datasource/prometheus/querybuilder/components/PromQueryBuilderOptions.tsx index 67ef8b17e7b..17b3b296eea 100644 --- a/public/app/plugins/datasource/prometheus/querybuilder/components/PromQueryBuilderOptions.tsx +++ b/public/app/plugins/datasource/prometheus/querybuilder/components/PromQueryBuilderOptions.tsx @@ -12,14 +12,24 @@ import { QueryOptionGroup } from '../shared/QueryOptionGroup'; import { getLegendModeLabel, PromQueryLegendEditor } from './PromQueryLegendEditor'; +export interface UIOptions { + exemplars: boolean; + type: boolean; + format: boolean; + minStep: boolean; + legend: boolean; + resolution: boolean; +} + export interface Props { query: PromQuery; app?: CoreApp; onChange: (update: PromQuery) => void; onRunQuery: () => void; + uiOptions: UIOptions; } -export const PromQueryBuilderOptions = React.memo(({ query, app, onChange, onRunQuery }) => { +export const PromQueryBuilderOptions = React.memo(({ query, app, onChange, onRunQuery, uiOptions }) => { const onChangeFormat = (value: SelectableValue) => { onChange({ ...query, format: value.value }); onRunQuery(); @@ -50,42 +60,53 @@ export const PromQueryBuilderOptions = React.memo(({ query, app, onChange return ( - - onChange({ ...query, legendFormat })} - onRunQuery={onRunQuery} - /> - - An additional lower limit for the step parameter of the Prometheus query and for the{' '} - $__interval and $__rate_interval variables. - - } - > - + {uiOptions.legend && ( + onChange({ ...query, legendFormat })} + onRunQuery={onRunQuery} /> - - - + + )} + {uiOptions.type && ( + + + + )} + {uiOptions.exemplars && shouldShowExemplarSwitch(query, app) && ( )} - {query.intervalFactor && query.intervalFactor > 1 && ( + {uiOptions.resolution && query.intervalFactor && query.intervalFactor > 1 && (