$echo '{
< "metricInventory": "{\\n \\"metrics\\": [\\n {\\n \\"name\\": \\"http_server_requests_total\\",\\n \\"type\\": \\"counter\\",\\n \\"series\\": 12000,\\n \\"scrapeInterval\\": \\"30s\\",\\n \\"labels\\": {\\n \\"service\\": 8,\\n \\"route\\": 40,\\n \\"method\\": 5,\\n \\"status_code\\": 6,\\n \\"pod\\": 60,\\n \\"env\\": [\\n \\"prod\\",\\n \\"staging\\"\\n ]\\n }\\n },\\n {\\n \\"name\\": \\"http_server_request_duration_seconds\\",\\n \\"type\\": \\"histogram\\",\\n \\"buckets\\": 14,\\n \\"series\\": 32000,\\n \\"labels\\": {\\n \\"service\\": 8,\\n \\"route\\": 40,\\n \\"method\\": 5,\\n \\"pod\\": 60,\\n \\"env\\": [\\n \\"prod\\",\\n \\"staging\\"\\n ]\\n }\\n },\\n {\\n \\"name\\": \\"grpc_server_handled_total\\",\\n \\"type\\": \\"counter\\",\\n \\"series\\": 6000,\\n \\"labels\\": {\\n \\"grpc_service\\": 10,\\n \\"grpc_method\\": 50,\\n \\"grpc_code\\": 17,\\n \\"pod\\": 60\\n }\\n },\\n {\\n \\"name\\": \\"go_memstats_alloc_bytes\\",\\n \\"type\\": \\"gauge\\",\\n \\"series\\": 60,\\n \\"labels\\": {\\n \\"service\\": 8,\\n \\"pod\\": 60\\n }\\n },\\n {\\n \\"name\\": \\"go_memstats_heap_inuse_bytes\\",\\n \\"type\\": \\"gauge\\",\\n \\"series\\": 60,\\n \\"labels\\": {\\n \\"service\\": 8,\\n \\"pod\\": 60\\n }\\n },\\n {\\n \\"name\\": \\"go_memstats_sys_bytes\\",\\n \\"type\\": \\"gauge\\",\\n \\"series\\": 60,\\n \\"labels\\": {\\n \\"service\\": 8,\\n \\"pod\\": 60\\n }\\n },\\n {\\n \\"name\\": \\"kafka_consumer_lag\\",\\n \\"type\\": \\"gauge\\",\\n \\"series\\": 3000,\\n \\"labels\\": {\\n \\"topic\\": 30,\\n \\"partition\\": 50,\\n \\"consumer_group\\": 4,\\n \\"pod\\": 20\\n }\\n }\\n ]\\n}",
< "dashboards": [
< {
< "title": "Service Overview",
< "time": {
< "from": "now-6h",
< "to": "now"
< },
< "templating": {
< "list": [
< {
< "name": "service",
< "type": "query",
< "query": "label_values(http_server_requests_total, service)"
< }
< ]
< },
< "panels": [
< {
< "id": 1,
< "title": "Request rate",
< "targets": [
< {
< "refId": "A",
< "expr": "sum by (service) (rate(http_server_requests_total{env=\\"prod\\", service=~\\"$service\\"}[$__rate_interval]))"
< }
< ]
< },
< {
< "id": 2,
< "title": "p99 latency",
< "targets": [
< {
< "refId": "A",
< "expr": "histogram_quantile(0.99, sum by (le, service) (rate(http_server_request_duration_seconds_bucket{env=\\"prod\\"}[$__rate_interval])))"
< }
< ]
< },
< {
< "id": 3,
< "type": "row",
< "title": "Kafka",
< "collapsed": true,
< "panels": [
< {
< "id": 4,
< "title": "Lag by topic",
< "targets": [
< {
< "refId": "A",
< "expr": "max by (topic) (kafka_consumer_lag)"
< }
< ]
< }
< ]
< }
< ]
< }
< ],
< "ruleFiles": [
< "groups:\\n - name: service-alerts\\n rules:\\n - alert: HighErrorRate\\n expr: |\\n sum by (service) (rate(http_server_requests_total{env=\\"prod\\", status_code=~\\"5..\\"}[5m]))\\n / sum by (service) (rate(http_server_requests_total{env=\\"prod\\"}[5m])) > 0.05\\n for: 10m\\n annotations:\\n summary: \\"High error rate on {{ $labels.service }}\\"\\n"
< ]
<}' |
<apify call michiganpublictech/metric-usage-optimizer --silent --output-dataset