719032b19f
Update Schema / Update configuration json schema (push) Has been cancelled
Memory Benchmark / Memory Test (Full Analysis) (push) Has been cancelled
CI Quality / Lint GitHub Actions (actionlint) (push) Has been cancelled
CI Quality / Lint GitHub Actions (zizmor) (push) Has been cancelled
CI Quality / Check typos (push) Has been cancelled
CI / Test coverage (push) Has been cancelled
CI / Test (22.x, windows-latest) (push) Has been cancelled
CI / Test (24.x, macos-latest) (push) Has been cancelled
CI / Test (24.x, ubuntu-latest) (push) Has been cancelled
CI / Test (24.x, windows-latest) (push) Has been cancelled
CI / Test (26.x, macos-latest) (push) Has been cancelled
CI / Test (26.x, ubuntu-latest) (push) Has been cancelled
CI / Test (26.x, windows-latest) (push) Has been cancelled
CI / Test with Bun (latest, macos-latest) (push) Has been cancelled
CI / Test with Bun (latest, ubuntu-latest) (push) Has been cancelled
CI / Test with Bun (latest, windows-latest) (push) Has been cancelled
CI / Build and run (22.x, macos-latest) (push) Has been cancelled
CI / Build and run (22.x, ubuntu-latest) (push) Has been cancelled
CI / Build and run (22.x, windows-latest) (push) Has been cancelled
autofix.ci / autofix (push) Has been cancelled
CI Browser Extension / Lint Browser Extension (push) Has been cancelled
CI Browser Extension / Test Browser Extension (push) Has been cancelled
Memory Benchmark / Memory Test (push) Has been cancelled
CI Website / Lint Website Client (push) Has been cancelled
CI Website / Lint Website Server (push) Has been cancelled
CI Website / Test Website Server (push) Has been cancelled
CI Website / Bundle Website Server (push) Has been cancelled
CI / Lint Biome (push) Has been cancelled
CI / Lint oxlint (push) Has been cancelled
CI / Lint TypeScript (push) Has been cancelled
CI / Lint Secretlint (push) Has been cancelled
CI / Test (22.x, macos-latest) (push) Has been cancelled
CI / Test (22.x, ubuntu-latest) (push) Has been cancelled
CI / Build and run (24.x, macos-latest) (push) Has been cancelled
CI / Build and run (24.x, ubuntu-latest) (push) Has been cancelled
CI / Build and run (24.x, windows-latest) (push) Has been cancelled
CI / Build and run (26.x, macos-latest) (push) Has been cancelled
CI / Build and run (26.x, ubuntu-latest) (push) Has been cancelled
CI / Build and run (26.x, windows-latest) (push) Has been cancelled
CI / Build and run with Bun (latest, macos-latest) (push) Has been cancelled
CI / Build and run with Bun (latest, ubuntu-latest) (push) Has been cancelled
CI / Build and run with Bun (latest, windows-latest) (push) Has been cancelled
CodeQL / Analyze (javascript-typescript) (push) Has been cancelled
Docker / build (linux/amd64, ubuntu-latest) (push) Has been cancelled
Docker / build (linux/arm/v7, ubuntu-24.04-arm) (push) Has been cancelled
Docker / build (linux/arm64, ubuntu-24.04-arm) (push) Has been cancelled
Docker / merge (push) Has been cancelled
Pack repository with Repomix / pack-repo (push) Has been cancelled
Performance Benchmark History / Benchmark (macos-latest) (push) Has been cancelled
Performance Benchmark History / Benchmark (ubuntu-latest) (push) Has been cancelled
Performance Benchmark History / Benchmark (windows-latest) (push) Has been cancelled
Performance Benchmark History / Store Results (push) Has been cancelled
Test Repomix Action / Test Node.js 22 (push) Has been cancelled
Test Repomix Action / Test Node.js 24 (push) Has been cancelled
Test Repomix Action / Test Node.js 26 (push) Has been cancelled
701 lines
23 KiB
JSON
701 lines
23 KiB
JSON
{
|
|
"displayName": "Repomix Server Ops (repomix-server-us)",
|
|
"mosaicLayout": {
|
|
"columns": 12,
|
|
"tiles": [
|
|
{
|
|
"xPos": 0,
|
|
"yPos": 0,
|
|
"width": 6,
|
|
"height": 4,
|
|
"widget": {
|
|
"title": "Request rate (by response class)",
|
|
"xyChart": {
|
|
"dataSets": [
|
|
{
|
|
"timeSeriesQuery": {
|
|
"timeSeriesFilter": {
|
|
"filter": "metric.type=\"run.googleapis.com/request_count\" resource.type=\"cloud_run_revision\" resource.labels.service_name=\"repomix-server-us\"",
|
|
"aggregation": {
|
|
"alignmentPeriod": "60s",
|
|
"perSeriesAligner": "ALIGN_RATE",
|
|
"crossSeriesReducer": "REDUCE_SUM",
|
|
"groupByFields": ["metric.label.response_code_class"]
|
|
}
|
|
}
|
|
},
|
|
"plotType": "LINE",
|
|
"targetAxis": "Y1"
|
|
}
|
|
],
|
|
"yAxis": { "label": "req/s", "scale": "LINEAR" }
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"xPos": 6,
|
|
"yPos": 0,
|
|
"width": 6,
|
|
"height": 4,
|
|
"widget": {
|
|
"title": "Instance count (max=10)",
|
|
"xyChart": {
|
|
"dataSets": [
|
|
{
|
|
"timeSeriesQuery": {
|
|
"timeSeriesFilter": {
|
|
"filter": "metric.type=\"run.googleapis.com/container/instance_count\" resource.labels.service_name=\"repomix-server-us\"",
|
|
"aggregation": {
|
|
"alignmentPeriod": "60s",
|
|
"perSeriesAligner": "ALIGN_MEAN",
|
|
"crossSeriesReducer": "REDUCE_SUM",
|
|
"groupByFields": ["metric.label.state"]
|
|
}
|
|
}
|
|
},
|
|
"plotType": "STACKED_AREA",
|
|
"targetAxis": "Y1"
|
|
}
|
|
],
|
|
"thresholds": [{ "value": 10, "label": "max_instances" }],
|
|
"yAxis": { "label": "instances", "scale": "LINEAR" }
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"xPos": 0,
|
|
"yPos": 4,
|
|
"width": 6,
|
|
"height": 4,
|
|
"widget": {
|
|
"title": "Memory utilization (P50 / P95)",
|
|
"xyChart": {
|
|
"dataSets": [
|
|
{
|
|
"timeSeriesQuery": {
|
|
"timeSeriesFilter": {
|
|
"filter": "metric.type=\"run.googleapis.com/container/memory/utilizations\" resource.labels.service_name=\"repomix-server-us\"",
|
|
"aggregation": {
|
|
"alignmentPeriod": "60s",
|
|
"perSeriesAligner": "ALIGN_PERCENTILE_50",
|
|
"crossSeriesReducer": "REDUCE_MAX"
|
|
}
|
|
}
|
|
},
|
|
"plotType": "LINE",
|
|
"legendTemplate": "P50",
|
|
"targetAxis": "Y1"
|
|
},
|
|
{
|
|
"timeSeriesQuery": {
|
|
"timeSeriesFilter": {
|
|
"filter": "metric.type=\"run.googleapis.com/container/memory/utilizations\" resource.labels.service_name=\"repomix-server-us\"",
|
|
"aggregation": {
|
|
"alignmentPeriod": "60s",
|
|
"perSeriesAligner": "ALIGN_PERCENTILE_95",
|
|
"crossSeriesReducer": "REDUCE_MAX"
|
|
}
|
|
}
|
|
},
|
|
"plotType": "LINE",
|
|
"legendTemplate": "P95",
|
|
"targetAxis": "Y1"
|
|
}
|
|
],
|
|
"thresholds": [{ "value": 0.85, "label": "warn" }],
|
|
"yAxis": { "label": "utilization", "scale": "LINEAR" }
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"xPos": 6,
|
|
"yPos": 4,
|
|
"width": 6,
|
|
"height": 4,
|
|
"widget": {
|
|
"title": "OOM terminations (5 min buckets)",
|
|
"xyChart": {
|
|
"dataSets": [
|
|
{
|
|
"timeSeriesQuery": {
|
|
"timeSeriesFilter": {
|
|
"filter": "metric.type=\"logging.googleapis.com/user/oom_terminations\"",
|
|
"aggregation": {
|
|
"alignmentPeriod": "300s",
|
|
"perSeriesAligner": "ALIGN_DELTA",
|
|
"crossSeriesReducer": "REDUCE_SUM"
|
|
}
|
|
}
|
|
},
|
|
"plotType": "STACKED_BAR",
|
|
"targetAxis": "Y1"
|
|
}
|
|
],
|
|
"yAxis": { "label": "count / 5min", "scale": "LINEAR" }
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"xPos": 0,
|
|
"yPos": 8,
|
|
"width": 6,
|
|
"height": 4,
|
|
"widget": {
|
|
"title": "Container killed — OOM (5 min buckets)",
|
|
"xyChart": {
|
|
"dataSets": [
|
|
{
|
|
"timeSeriesQuery": {
|
|
"timeSeriesFilter": {
|
|
"filter": "metric.type=\"logging.googleapis.com/user/container_killed\"",
|
|
"aggregation": {
|
|
"alignmentPeriod": "300s",
|
|
"perSeriesAligner": "ALIGN_DELTA",
|
|
"crossSeriesReducer": "REDUCE_SUM"
|
|
}
|
|
}
|
|
},
|
|
"plotType": "STACKED_BAR",
|
|
"targetAxis": "Y1"
|
|
}
|
|
],
|
|
"yAxis": { "label": "count / 5min", "scale": "LINEAR" }
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"xPos": 0,
|
|
"yPos": 12,
|
|
"width": 6,
|
|
"height": 4,
|
|
"widget": {
|
|
"title": "Pack outcome (stacked by outcome)",
|
|
"xyChart": {
|
|
"dataSets": [
|
|
{
|
|
"timeSeriesQuery": {
|
|
"timeSeriesFilter": {
|
|
"filter": "metric.type=\"logging.googleapis.com/user/pack_requests\"",
|
|
"aggregation": {
|
|
"alignmentPeriod": "300s",
|
|
"perSeriesAligner": "ALIGN_DELTA",
|
|
"crossSeriesReducer": "REDUCE_SUM",
|
|
"groupByFields": ["metric.label.outcome"]
|
|
}
|
|
}
|
|
},
|
|
"plotType": "STACKED_AREA",
|
|
"targetAxis": "Y1"
|
|
}
|
|
],
|
|
"yAxis": { "label": "count / 5min", "scale": "LINEAR" }
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"xPos": 6,
|
|
"yPos": 12,
|
|
"width": 6,
|
|
"height": 4,
|
|
"widget": {
|
|
"title": "Cache hit ratio (success only)",
|
|
"xyChart": {
|
|
"dataSets": [
|
|
{
|
|
"timeSeriesQuery": {
|
|
"timeSeriesFilter": {
|
|
"filter": "metric.type=\"logging.googleapis.com/user/pack_requests\" metric.label.outcome=\"success\"",
|
|
"aggregation": {
|
|
"alignmentPeriod": "300s",
|
|
"perSeriesAligner": "ALIGN_DELTA",
|
|
"crossSeriesReducer": "REDUCE_SUM",
|
|
"groupByFields": ["metric.label.cached"]
|
|
}
|
|
}
|
|
},
|
|
"plotType": "STACKED_AREA",
|
|
"targetAxis": "Y1",
|
|
"legendTemplate": "cached=${metric.labels.cached}"
|
|
}
|
|
],
|
|
"yAxis": { "label": "count / 5min", "scale": "LINEAR" }
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"xPos": 0,
|
|
"yPos": 16,
|
|
"width": 6,
|
|
"height": 4,
|
|
"widget": {
|
|
"title": "Input type (URL vs file upload)",
|
|
"xyChart": {
|
|
"dataSets": [
|
|
{
|
|
"timeSeriesQuery": {
|
|
"timeSeriesFilter": {
|
|
"filter": "metric.type=\"logging.googleapis.com/user/pack_requests\" metric.label.outcome=\"success\"",
|
|
"aggregation": {
|
|
"alignmentPeriod": "300s",
|
|
"perSeriesAligner": "ALIGN_DELTA",
|
|
"crossSeriesReducer": "REDUCE_SUM",
|
|
"groupByFields": ["metric.label.input_type"]
|
|
}
|
|
}
|
|
},
|
|
"plotType": "STACKED_AREA",
|
|
"targetAxis": "Y1"
|
|
}
|
|
],
|
|
"yAxis": { "label": "count / 5min", "scale": "LINEAR" }
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"xPos": 6,
|
|
"yPos": 16,
|
|
"width": 6,
|
|
"height": 4,
|
|
"widget": {
|
|
"title": "Country TOP (stacked)",
|
|
"xyChart": {
|
|
"dataSets": [
|
|
{
|
|
"timeSeriesQuery": {
|
|
"timeSeriesFilter": {
|
|
"filter": "metric.type=\"logging.googleapis.com/user/pack_requests_by_country\"",
|
|
"aggregation": {
|
|
"alignmentPeriod": "300s",
|
|
"perSeriesAligner": "ALIGN_DELTA",
|
|
"crossSeriesReducer": "REDUCE_SUM",
|
|
"groupByFields": ["metric.label.country"]
|
|
}
|
|
}
|
|
},
|
|
"plotType": "STACKED_AREA",
|
|
"targetAxis": "Y1"
|
|
}
|
|
],
|
|
"yAxis": { "label": "count / 5min", "scale": "LINEAR" }
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"xPos": 6,
|
|
"yPos": 8,
|
|
"width": 6,
|
|
"height": 4,
|
|
"widget": {
|
|
"title": "Request latency P50 / P95 / P99",
|
|
"xyChart": {
|
|
"dataSets": [
|
|
{
|
|
"timeSeriesQuery": {
|
|
"timeSeriesFilter": {
|
|
"filter": "metric.type=\"run.googleapis.com/request_latencies\" resource.labels.service_name=\"repomix-server-us\"",
|
|
"aggregation": {
|
|
"alignmentPeriod": "60s",
|
|
"perSeriesAligner": "ALIGN_PERCENTILE_50",
|
|
"crossSeriesReducer": "REDUCE_MAX"
|
|
}
|
|
}
|
|
},
|
|
"plotType": "LINE",
|
|
"legendTemplate": "P50",
|
|
"targetAxis": "Y1"
|
|
},
|
|
{
|
|
"timeSeriesQuery": {
|
|
"timeSeriesFilter": {
|
|
"filter": "metric.type=\"run.googleapis.com/request_latencies\" resource.labels.service_name=\"repomix-server-us\"",
|
|
"aggregation": {
|
|
"alignmentPeriod": "60s",
|
|
"perSeriesAligner": "ALIGN_PERCENTILE_95",
|
|
"crossSeriesReducer": "REDUCE_MAX"
|
|
}
|
|
}
|
|
},
|
|
"plotType": "LINE",
|
|
"legendTemplate": "P95",
|
|
"targetAxis": "Y1"
|
|
},
|
|
{
|
|
"timeSeriesQuery": {
|
|
"timeSeriesFilter": {
|
|
"filter": "metric.type=\"run.googleapis.com/request_latencies\" resource.labels.service_name=\"repomix-server-us\"",
|
|
"aggregation": {
|
|
"alignmentPeriod": "60s",
|
|
"perSeriesAligner": "ALIGN_PERCENTILE_99",
|
|
"crossSeriesReducer": "REDUCE_MAX"
|
|
}
|
|
}
|
|
},
|
|
"plotType": "LINE",
|
|
"legendTemplate": "P99",
|
|
"targetAxis": "Y1"
|
|
}
|
|
],
|
|
"yAxis": { "label": "ms", "scale": "LINEAR" }
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"xPos": 0,
|
|
"yPos": 20,
|
|
"width": 6,
|
|
"height": 4,
|
|
"widget": {
|
|
"title": "Pack output tokens (P50 / P95 / P99)",
|
|
"xyChart": {
|
|
"dataSets": [
|
|
{
|
|
"timeSeriesQuery": {
|
|
"timeSeriesFilter": {
|
|
"filter": "metric.type=\"logging.googleapis.com/user/pack_output_tokens\"",
|
|
"aggregation": {
|
|
"alignmentPeriod": "300s",
|
|
"perSeriesAligner": "ALIGN_PERCENTILE_50",
|
|
"crossSeriesReducer": "REDUCE_MEAN"
|
|
}
|
|
}
|
|
},
|
|
"plotType": "LINE",
|
|
"legendTemplate": "P50",
|
|
"targetAxis": "Y1"
|
|
},
|
|
{
|
|
"timeSeriesQuery": {
|
|
"timeSeriesFilter": {
|
|
"filter": "metric.type=\"logging.googleapis.com/user/pack_output_tokens\"",
|
|
"aggregation": {
|
|
"alignmentPeriod": "300s",
|
|
"perSeriesAligner": "ALIGN_PERCENTILE_95",
|
|
"crossSeriesReducer": "REDUCE_MEAN"
|
|
}
|
|
}
|
|
},
|
|
"plotType": "LINE",
|
|
"legendTemplate": "P95",
|
|
"targetAxis": "Y1"
|
|
},
|
|
{
|
|
"timeSeriesQuery": {
|
|
"timeSeriesFilter": {
|
|
"filter": "metric.type=\"logging.googleapis.com/user/pack_output_tokens\"",
|
|
"aggregation": {
|
|
"alignmentPeriod": "300s",
|
|
"perSeriesAligner": "ALIGN_PERCENTILE_99",
|
|
"crossSeriesReducer": "REDUCE_MEAN"
|
|
}
|
|
}
|
|
},
|
|
"plotType": "LINE",
|
|
"legendTemplate": "P99",
|
|
"targetAxis": "Y1"
|
|
}
|
|
],
|
|
"yAxis": { "label": "tokens", "scale": "LOG10" }
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"xPos": 6,
|
|
"yPos": 20,
|
|
"width": 6,
|
|
"height": 4,
|
|
"widget": {
|
|
"title": "Pack output files (P50 / P95 / P99)",
|
|
"xyChart": {
|
|
"dataSets": [
|
|
{
|
|
"timeSeriesQuery": {
|
|
"timeSeriesFilter": {
|
|
"filter": "metric.type=\"logging.googleapis.com/user/pack_output_files\"",
|
|
"aggregation": {
|
|
"alignmentPeriod": "300s",
|
|
"perSeriesAligner": "ALIGN_PERCENTILE_50",
|
|
"crossSeriesReducer": "REDUCE_MEAN"
|
|
}
|
|
}
|
|
},
|
|
"plotType": "LINE",
|
|
"legendTemplate": "P50",
|
|
"targetAxis": "Y1"
|
|
},
|
|
{
|
|
"timeSeriesQuery": {
|
|
"timeSeriesFilter": {
|
|
"filter": "metric.type=\"logging.googleapis.com/user/pack_output_files\"",
|
|
"aggregation": {
|
|
"alignmentPeriod": "300s",
|
|
"perSeriesAligner": "ALIGN_PERCENTILE_95",
|
|
"crossSeriesReducer": "REDUCE_MEAN"
|
|
}
|
|
}
|
|
},
|
|
"plotType": "LINE",
|
|
"legendTemplate": "P95",
|
|
"targetAxis": "Y1"
|
|
},
|
|
{
|
|
"timeSeriesQuery": {
|
|
"timeSeriesFilter": {
|
|
"filter": "metric.type=\"logging.googleapis.com/user/pack_output_files\"",
|
|
"aggregation": {
|
|
"alignmentPeriod": "300s",
|
|
"perSeriesAligner": "ALIGN_PERCENTILE_99",
|
|
"crossSeriesReducer": "REDUCE_MEAN"
|
|
}
|
|
}
|
|
},
|
|
"plotType": "LINE",
|
|
"legendTemplate": "P99",
|
|
"targetAxis": "Y1"
|
|
}
|
|
],
|
|
"yAxis": { "label": "files", "scale": "LOG10" }
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"xPos": 0,
|
|
"yPos": 24,
|
|
"width": 3,
|
|
"height": 4,
|
|
"widget": {
|
|
"title": "Option usage — compress",
|
|
"xyChart": {
|
|
"dataSets": [
|
|
{
|
|
"timeSeriesQuery": {
|
|
"timeSeriesFilter": {
|
|
"filter": "metric.type=\"logging.googleapis.com/user/pack_options_usage\"",
|
|
"aggregation": {
|
|
"alignmentPeriod": "300s",
|
|
"perSeriesAligner": "ALIGN_DELTA",
|
|
"crossSeriesReducer": "REDUCE_SUM",
|
|
"groupByFields": ["metric.label.compress"]
|
|
}
|
|
}
|
|
},
|
|
"plotType": "STACKED_AREA",
|
|
"targetAxis": "Y1",
|
|
"legendTemplate": "compress=${metric.labels.compress}"
|
|
}
|
|
],
|
|
"yAxis": { "label": "count / 5min", "scale": "LINEAR" }
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"xPos": 3,
|
|
"yPos": 24,
|
|
"width": 3,
|
|
"height": 4,
|
|
"widget": {
|
|
"title": "Option usage — removeComments",
|
|
"xyChart": {
|
|
"dataSets": [
|
|
{
|
|
"timeSeriesQuery": {
|
|
"timeSeriesFilter": {
|
|
"filter": "metric.type=\"logging.googleapis.com/user/pack_options_usage\"",
|
|
"aggregation": {
|
|
"alignmentPeriod": "300s",
|
|
"perSeriesAligner": "ALIGN_DELTA",
|
|
"crossSeriesReducer": "REDUCE_SUM",
|
|
"groupByFields": ["metric.label.remove_comments"]
|
|
}
|
|
}
|
|
},
|
|
"plotType": "STACKED_AREA",
|
|
"targetAxis": "Y1",
|
|
"legendTemplate": "removeComments=${metric.labels.remove_comments}"
|
|
}
|
|
],
|
|
"yAxis": { "label": "count / 5min", "scale": "LINEAR" }
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"xPos": 6,
|
|
"yPos": 24,
|
|
"width": 3,
|
|
"height": 4,
|
|
"widget": {
|
|
"title": "Option usage — outputParsable",
|
|
"xyChart": {
|
|
"dataSets": [
|
|
{
|
|
"timeSeriesQuery": {
|
|
"timeSeriesFilter": {
|
|
"filter": "metric.type=\"logging.googleapis.com/user/pack_options_usage\"",
|
|
"aggregation": {
|
|
"alignmentPeriod": "300s",
|
|
"perSeriesAligner": "ALIGN_DELTA",
|
|
"crossSeriesReducer": "REDUCE_SUM",
|
|
"groupByFields": ["metric.label.output_parsable"]
|
|
}
|
|
}
|
|
},
|
|
"plotType": "STACKED_AREA",
|
|
"targetAxis": "Y1",
|
|
"legendTemplate": "outputParsable=${metric.labels.output_parsable}"
|
|
}
|
|
],
|
|
"yAxis": { "label": "count / 5min", "scale": "LINEAR" }
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"xPos": 9,
|
|
"yPos": 24,
|
|
"width": 3,
|
|
"height": 4,
|
|
"widget": {
|
|
"title": "Option usage — include patterns",
|
|
"xyChart": {
|
|
"dataSets": [
|
|
{
|
|
"timeSeriesQuery": {
|
|
"timeSeriesFilter": {
|
|
"filter": "metric.type=\"logging.googleapis.com/user/pack_options_usage\"",
|
|
"aggregation": {
|
|
"alignmentPeriod": "300s",
|
|
"perSeriesAligner": "ALIGN_DELTA",
|
|
"crossSeriesReducer": "REDUCE_SUM",
|
|
"groupByFields": ["metric.label.has_include_patterns"]
|
|
}
|
|
}
|
|
},
|
|
"plotType": "STACKED_AREA",
|
|
"targetAxis": "Y1",
|
|
"legendTemplate": "hasIncludePatterns=${metric.labels.has_include_patterns}"
|
|
}
|
|
],
|
|
"yAxis": { "label": "count / 5min", "scale": "LINEAR" }
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"xPos": 0,
|
|
"yPos": 28,
|
|
"width": 12,
|
|
"height": 4,
|
|
"widget": {
|
|
"title": "Validation rejections (by reason)",
|
|
"xyChart": {
|
|
"dataSets": [
|
|
{
|
|
"timeSeriesQuery": {
|
|
"timeSeriesFilter": {
|
|
"filter": "metric.type=\"logging.googleapis.com/user/pack_validation_errors\"",
|
|
"aggregation": {
|
|
"alignmentPeriod": "300s",
|
|
"perSeriesAligner": "ALIGN_DELTA",
|
|
"crossSeriesReducer": "REDUCE_SUM",
|
|
"groupByFields": ["metric.label.reject_reason"]
|
|
}
|
|
}
|
|
},
|
|
"plotType": "STACKED_AREA",
|
|
"targetAxis": "Y1"
|
|
}
|
|
],
|
|
"yAxis": { "label": "count / 5min", "scale": "LINEAR" }
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"xPos": 0,
|
|
"yPos": 32,
|
|
"width": 6,
|
|
"height": 4,
|
|
"widget": {
|
|
"title": "Turnstile siteverify latency P50 / P95 / P99",
|
|
"xyChart": {
|
|
"dataSets": [
|
|
{
|
|
"timeSeriesQuery": {
|
|
"timeSeriesFilter": {
|
|
"filter": "metric.type=\"logging.googleapis.com/user/turnstile_siteverify_duration\"",
|
|
"aggregation": {
|
|
"alignmentPeriod": "60s",
|
|
"perSeriesAligner": "ALIGN_PERCENTILE_50",
|
|
"crossSeriesReducer": "REDUCE_MAX"
|
|
}
|
|
}
|
|
},
|
|
"plotType": "LINE",
|
|
"legendTemplate": "P50",
|
|
"targetAxis": "Y1"
|
|
},
|
|
{
|
|
"timeSeriesQuery": {
|
|
"timeSeriesFilter": {
|
|
"filter": "metric.type=\"logging.googleapis.com/user/turnstile_siteverify_duration\"",
|
|
"aggregation": {
|
|
"alignmentPeriod": "60s",
|
|
"perSeriesAligner": "ALIGN_PERCENTILE_95",
|
|
"crossSeriesReducer": "REDUCE_MAX"
|
|
}
|
|
}
|
|
},
|
|
"plotType": "LINE",
|
|
"legendTemplate": "P95",
|
|
"targetAxis": "Y1"
|
|
},
|
|
{
|
|
"timeSeriesQuery": {
|
|
"timeSeriesFilter": {
|
|
"filter": "metric.type=\"logging.googleapis.com/user/turnstile_siteverify_duration\"",
|
|
"aggregation": {
|
|
"alignmentPeriod": "60s",
|
|
"perSeriesAligner": "ALIGN_PERCENTILE_99",
|
|
"crossSeriesReducer": "REDUCE_MAX"
|
|
}
|
|
}
|
|
},
|
|
"plotType": "LINE",
|
|
"legendTemplate": "P99",
|
|
"targetAxis": "Y1"
|
|
}
|
|
],
|
|
"thresholds": [{ "value": 1000, "label": "1s" }],
|
|
"yAxis": { "label": "ms", "scale": "LINEAR" }
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"xPos": 6,
|
|
"yPos": 32,
|
|
"width": 6,
|
|
"height": 4,
|
|
"widget": {
|
|
"title": "Turnstile siteverify outcomes (by outcome / reason)",
|
|
"xyChart": {
|
|
"dataSets": [
|
|
{
|
|
"timeSeriesQuery": {
|
|
"timeSeriesFilter": {
|
|
"filter": "metric.type=\"logging.googleapis.com/user/turnstile_siteverify_outcomes\"",
|
|
"aggregation": {
|
|
"alignmentPeriod": "300s",
|
|
"perSeriesAligner": "ALIGN_DELTA",
|
|
"crossSeriesReducer": "REDUCE_SUM",
|
|
"groupByFields": ["metric.label.outcome", "metric.label.reason"]
|
|
}
|
|
}
|
|
},
|
|
"plotType": "STACKED_AREA",
|
|
"targetAxis": "Y1"
|
|
}
|
|
],
|
|
"yAxis": { "label": "count / 5min", "scale": "LINEAR" }
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|