1. Add bigtable, boltdb-shipper to read/write dashboards.
2. Add boltdb-shipper to operational dashboard.
3. Record latency for write operation in boltdb-shipper.
"expr":"histogram_quantile(.99, sum(rate(loki_boltdb_shipper_request_duration_seconds_seconds_bucket{cluster=\"$cluster\", namespace=\"$namespace\"}[5m])) by (operation, le))",
"intervalFactor":1,
"legendFormat":".99-{{operation}}",
"refId":"A"
},
{
"expr":"histogram_quantile(.9, sum(rate(loki_boltdb_shipper_request_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"$namespace\"}[5m])) by (operation, le))",
"hide":false,
"legendFormat":".9-{{operation}}",
"refId":"B"
},
{
"expr":"histogram_quantile(.5, sum(rate(loki_boltdb_shipper_request_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"$namespace\"}[5m])) by (operation, le))",
"hide":false,
"legendFormat":".5-{{operation}}",
"refId":"C"
}
],
"thresholds":[],
"timeFrom":null,
"timeRegions":[],
"timeShift":null,
"title":"Latency By Operation",
"tooltip":{
"shared":true,
"sort":2,
"value_type":"individual"
},
"type":"graph",
"xaxis":{
"buckets":null,
"mode":"time",
"name":null,
"show":true,
"values":[]
},
"yaxes":[
{
"format":"short",
"label":null,
"logBase":1,
"max":null,
"min":null,
"show":true
},
{
"format":"short",
"label":null,
"logBase":1,
"max":null,
"min":null,
"show":true
}
],
"yaxis":{
"align":false,
"alignLevel":null
}
},
{
"aliasColors":{},
"bars":false,
"dashLength":10,
"dashes":false,
"datasource":"$datasource",
"fill":1,
"fillGradient":0,
"gridPos":{
"h":8,
"w":24,
"x":0,
"y":18
},
"id":116,
"interval":"",
"legend":{
"alignAsTable":true,
"avg":false,
"current":false,
"max":false,
"min":false,
"rightSide":true,
"show":true,
"total":false,
"values":false
},
"lines":true,
"linewidth":1,
"nullPointMode":"null",
"options":{
"dataLinks":[]
},
"percentage":false,
"pointradius":1,
"points":false,
"renderer":"flot",
"seriesOverrides":[],
"spaceLength":10,
"stack":false,
"steppedLine":false,
"targets":[
{
"expr":"sum(rate(loki_boltdb_shipper_request_duration_seconds_count{cluster=\"$cluster\", namespace=\"$namespace\"}[5m])) by (status_code, operation)",
local http_routes = 'loki_api_v1_series|api_prom_series|api_prom_query|api_prom_label|api_prom_label_name_values|loki_api_v1_query|loki_api_v1_query_range|loki_api_v1_labels|loki_api_v1_label_name_values',
local grpc_routes = '/logproto.Querier/Query|/logproto.Querier/Label|/logproto.Querier/Series',
@ -93,6 +114,28 @@ local utils = import 'mixin-utils/utils.libsonnet';