Skip to content

Grafana "Anticapture V2" data visualization Dashboard#1834

Merged
PedroBinotto merged 23 commits intodevfrom
feat/anticapture-dashboard-v2
Apr 24, 2026
Merged

Grafana "Anticapture V2" data visualization Dashboard#1834
PedroBinotto merged 23 commits intodevfrom
feat/anticapture-dashboard-v2

Conversation

@PedroBinotto
Copy link
Copy Markdown
Collaborator

@PedroBinotto PedroBinotto commented Apr 22, 2026

What

Adds an observability layer and a new Grafana dashboard ("Anticapture V2") for monitoring the platform's request traffic, cache behaviour, and system health.

Changes

apps/api-gateway

  • Records http_server_request_duration_seconds (histogram) per request, labelled by method, route, status code, and client_source (derived from the x-client-source request header).

apps/gateful

  • Records cache_requests_total (counter) per cache lookup, labelled by result (hit, miss, corrupt) and route.

apps/dashboard

  • Forwards the x-client-source header through the Next.js proxy so the gateway can attribute traffic to the frontend.

packages/anticapture-client

  • Injects x-client-source: anticapture-frontend on every outgoing API request.

infra/monitoring/grafana/dashboards/anticapture-v2.json
New dashboard with the following sections:

Section Panels
Service Health API and Indexer up/down per DAO
Traffic Overview DAO × route table — req/s, p99 latency, error ratio
Traffic Detail Request rate, error rate, p99/p95/p50 latency, latency by route, status code breakdown
Gateful Cache Hit rate over time, hits vs misses (stacked bars)
Client Traffic Share by client source (donut), rate over time
System Metrics Process and system CPU/memory, RPC request rate
eRPC Incoming RPS, successful responses, critical errors, vendor/upstream p99 latency

@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 22, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
anticapture Ready Ready Preview, Comment Apr 24, 2026 8:21pm
anticapture-storybook Ready Ready Preview, Comment Apr 24, 2026 8:21pm

Request Review

@claude
Copy link
Copy Markdown

claude Bot commented Apr 22, 2026

Claude encountered an error —— View job


I'll analyze this and get back to you.

@railway-app
Copy link
Copy Markdown

railway-app Bot commented Apr 22, 2026

🚅 Deployed to the anticapture-pr-1834 environment in anticapture-infra

Service Status Web Updated (UTC)
gateful ✅ Success (View Logs) Web Apr 24, 2026 at 8:21 pm
grafana ✅ Success (View Logs) Web Apr 24, 2026 at 8:20 pm
prometheus ✅ Success (View Logs) Web Apr 24, 2026 at 8:20 pm
loki ✅ Success (View Logs) Web Apr 24, 2026 at 8:20 pm
otelcol ✅ Success (View Logs) Apr 24, 2026 at 8:20 pm
ens-api-hypersync ✅ Success (View Logs) Web Apr 24, 2026 at 8:20 pm
alertmanager ✅ Success (View Logs) Web Apr 24, 2026 at 8:19 pm
tempo ✅ Success (View Logs) Apr 24, 2026 at 8:19 pm
ens-indexer-hypersync ❌ Build Failed (View Logs) Apr 24, 2026 at 8:19 pm
gitcoin-indexer ❌ Build Failed (View Logs) Apr 24, 2026 at 6:29 pm
ens-indexer ❌ Build Failed (View Logs) Apr 24, 2026 at 6:29 pm
compound-indexer ❌ Build Failed (View Logs) Apr 24, 2026 at 6:29 pm
aave-indexer ❌ Build Failed (View Logs) Apr 24, 2026 at 6:29 pm
uniswap-indexer ❌ Build Failed (View Logs) Apr 24, 2026 at 6:29 pm
nouns-indexer ❌ Build Failed (View Logs) Apr 24, 2026 at 6:29 pm
obol-api ✅ Success (View Logs) Apr 24, 2026 at 6:20 pm
api-gateway ✅ Success (View Logs) Web Apr 24, 2026 at 6:19 pm
fluid-api ✅ Success (View Logs) Apr 24, 2026 at 6:19 pm
shutter-api ✅ Success (View Logs) Apr 24, 2026 at 6:19 pm
compound-api ✅ Success (View Logs) Apr 24, 2026 at 6:19 pm
nouns-api ✅ Success (View Logs) Apr 24, 2026 at 6:19 pm
ens-api ✅ Success (View Logs) Apr 24, 2026 at 6:19 pm
aave-api ✅ Success (View Logs) Apr 24, 2026 at 6:18 pm
lil-nouns-api ✅ Success (View Logs) Apr 24, 2026 at 6:18 pm
uniswap-api ✅ Success (View Logs) Apr 24, 2026 at 6:18 pm
gitcoin-api ✅ Success (View Logs) Apr 24, 2026 at 6:18 pm
scroll-api ✅ Success (View Logs) Apr 24, 2026 at 6:18 pm
obol-indexer ✅ Success (View Logs) Apr 23, 2026 at 7:49 am
scroll-indexer ✅ Success (View Logs) Apr 23, 2026 at 3:42 am
shutter-indexer ✅ Success (View Logs) Apr 22, 2026 at 9:09 pm
address-enrichment ✅ Success (View Logs) Apr 22, 2026 at 6:29 pm
erpc ✅ Success (View Logs) Apr 22, 2026 at 6:28 pm
nodeful ✅ Success (View Logs) Apr 22, 2026 at 6:28 pm
16 services not affected by this PR
  • telegram-bot-db
  • RabbitMQ
  • RabbitMQ Web UI
  • logic-system
  • subscription-server
  • consumer
  • tailscale-entrance
  • caddy-zero-trust
  • s3manager
  • fluid-indexer
  • compound-indexer-offchain
  • dispatcher
  • lil-nouns-indexer
  • ens-indexer-offchain
  • uniswap-indexer-offchain
  • gitcoin-indexer-offchain

@railway-app railway-app Bot temporarily deployed to anticapture-infra / anticapture-pr-1834 April 22, 2026 18:26 Destroyed
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: fc7d5f82a4

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread apps/gateful/src/middlewares/cache.ts Outdated
Comment thread apps/api-gateway/src/index.ts Outdated
Comment thread apps/dashboard/app/api/gateful/[...path]/route.ts Outdated
@railway-app railway-app Bot temporarily deployed to anticapture-infra / anticapture-pr-1834 April 24, 2026 18:16 Destroyed
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 5bf6da0146

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread infra/monitoring/entrypoint.prometheus.sh
Comment thread apps/gateful/src/middlewares/cache.ts Outdated
@railway-app railway-app Bot temporarily deployed to anticapture-infra / anticapture-pr-1834 April 24, 2026 18:34 Destroyed
@vercel vercel Bot temporarily deployed to Preview – anticapture-storybook April 24, 2026 18:34 Inactive
@railway-app railway-app Bot temporarily deployed to anticapture-infra / anticapture-pr-1834 April 24, 2026 20:19 Destroyed
@PedroBinotto PedroBinotto merged commit 13e3d39 into dev Apr 24, 2026
40 of 41 checks passed
@PedroBinotto PedroBinotto deleted the feat/anticapture-dashboard-v2 branch April 24, 2026 20:22
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2f9d7cc33b

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

const meter = meterProvider.getMeter("anticapture-gateway");

export const httpRequestDuration = meter.createHistogram(
"http_server_request_duration_seconds",
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Use a distinct metric name for gateway request latency

This introduces a new histogram named http_server_request_duration_seconds for anticapture-gateway, which is the same series family already used by DAO APIs. Our alert rules (infra/monitoring/alerts.yml, HighLatency and HighErrorRate) aggregate http_server_request_duration_seconds_* without a job filter, so gateway traffic is now mixed into API SLO signals; in practice, high-volume low-error gateway traffic can mask API regressions (or vice versa), causing missed or misleading alerts. Prefer a gateway-specific metric name (or update alerts to scope by job) so API alert semantics stay stable.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants