Repository navigation
Expand file tree
/
Copy pathprometheus.yml
More file actions
274 lines (255 loc) · 11.5 KB
/
Copy pathprometheus.yml
File metadata and controls
274 lines (255 loc) · 11.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
global:
scrape_interval: 15s
evaluation_interval: 15s
external_labels:
project: openchainbench
# OpenChainBench is a federation: each harness is hosted by whoever wrote it
# (Mobula, an independent contributor, a provider that wants to be benchmarked).
# This single shared Prometheus scrapes every harness's public /metrics
# endpoint and aggregates everything into one queryable instance. the URL
# referenced by every YAML spec's `prom_url`.
#
# To onboard a new harness:
# 1. The contributor exposes /metrics on a publicly reachable URL
# (Railway, Fly, Cloud Run, a VPS. anywhere with HTTPS).
# 2. Append a `- job_name: <slug>` block below pointing at that URL.
# 3. Open a PR. Once merged, redeploy the prometheus service so it picks
# up the new target (or hit the /-/reload endpoint).
#
# All metrics receive a `benchmark: <slug>` label automatically; YAML specs
# use it to scope queries.
scrape_configs:
# ─ Aggregator head lag ────────────────────────────────────────────────
# Currently hosted by the maintainers on Railway. Replace the URL if you fork.
- job_name: aggregator-head-lag
metrics_path: /metrics
scheme: https
static_configs:
- targets:
- aggregator-head-lag-production.up.railway.app
labels:
benchmark: aggregator-head-lag
host: openchainbench
# ─ Bridge quote latency + cost ────────────────────────────────────────
# Currently hosted by the maintainers on Railway. Replace the URL if you fork.
- job_name: bridge-monitor
metrics_path: /metrics
scheme: https
static_configs:
- targets:
- bridge-monitor-production.up.railway.app
labels:
benchmark: bridge-monitor
host: openchainbench
# ─ Wallet labels coverage ────────────────────────────────────────────
# Currently hosted by the maintainers on Railway. Replace the URL if you fork.
- job_name: wallet-labels
metrics_path: /metrics
scheme: https
static_configs:
- targets:
- upstream-monorepo-production-1f1b.up.railway.app
labels:
benchmark: wallet-labels
host: openchainbench
# ─ L1 finality ────────────────────────────────────────────────────────
# Currently hosted by the maintainers on Railway. Replace the URL if you fork.
- job_name: l1-finality
metrics_path: /metrics
scheme: https
static_configs:
- targets:
- l1-finality-production.up.railway.app
labels:
benchmark: l1-finality
host: openchainbench
# ─ Metadata coverage ──────────────────────────────────────────────────
# Currently hosted by the maintainers on Railway. Replace the URL if you fork.
- job_name: metadata-coverage
metrics_path: /metrics
scheme: https
static_configs:
- targets:
- metadata-coverage-production.up.railway.app
labels:
benchmark: metadata-coverage
host: openchainbench
# ─ Network coverage ───────────────────────────────────────────────────
# Currently hosted by the maintainers on Railway. Replace the URL if you fork.
- job_name: network-coverage
metrics_path: /metrics
scheme: https
static_configs:
- targets:
- network-coverage-production.up.railway.app
labels:
benchmark: network-coverage
host: openchainbench
# ─ Perp fees ──────────────────────────────────────────────────────────
# Currently hosted by the maintainers on Railway. Replace the URL if you fork.
- job_name: perp-fees
metrics_path: /metrics
scheme: https
static_configs:
- targets:
- perp-fees-production.up.railway.app
labels:
benchmark: perp-fees
host: openchainbench
# ─ PM data freshness ─────────────────────────────────────────────────
# Cross-correlates Polymarket CLOB WebSocket (T0) vs Mobula PM WS vs
# Codex (defined.fi) GraphQL WS for the same trade. Reports per-provider
# millisecond lag.
#
# Scraped over Railway internal DNS because the harness lives in the
# same `Dashboard OpenChainBench` Railway project as this Prometheus.
# Public *.up.railway.app routes go through the edge and Railway does
# not always allow same-project traffic to loop back via the public
# gateway. Internal DNS is HTTP on port 2112 (the harness's exposed
# /metrics port) — never goes through Cloudflare / edge.
- job_name: pm-freshness
metrics_path: /metrics
scheme: http
static_configs:
- targets:
- pm-freshness-bench-production.railway.internal:2112
labels:
benchmark: pm-freshness
host: openchainbench
# ─ PM venue rate limits + latency ────────────────────────────────────
# Probes the public APIs of 5 prediction-market venues (Polymarket,
# Kalshi, Limitless, Manifold, Myriad): warm/cold latency on book,
# price and list classes, plus a daily rate-limit ramp. One Railway
# service per region, scraped over internal DNS like pm-freshness.
# Service names must match these targets when deploying.
- job_name: pm-rate-limits
metrics_path: /metrics
scheme: http
static_configs:
- targets:
- pm-rate-limits-us.railway.internal:2112
- pm-rate-limits-eu.railway.internal:2112
- pm-rate-limits-sgp.railway.internal:2112
labels:
benchmark: pm-rate-limits
host: openchainbench
# ─ Fiat on-ramp all-in cost (bench 262) ───────────────────────────────
# One EU vantage (persona FR/EUR), container ocb-fiat-onramp-cost on the
# Paris VPS next to Prom. Harness quotes every 5 min; the scrape only
# refreshes gauges, sample counts come from onramp_quote_samples_total.
- job_name: fiat-onramp-cost
metrics_path: /metrics
scheme: http
static_configs:
- targets:
- ocb-fiat-onramp-cost:2113
labels:
benchmark: fiat-onramp-cost
host: openchainbench
# ─ Perp DEX daily volume (bench 266) ──────────────────────────────────
# Container ocb-perp-volume-history on the Paris VPS. One number per
# venue per closed UTC day, backfilled 400 days; the scrape refreshes
# the last-day / 7d / 30d gauges, the full series is served as JSON by
# Caddy at kv.openchainbench.com/aggregate/perp-volume/history.json.
- job_name: perp-volume-history
metrics_path: /metrics
scheme: http
static_configs:
- targets:
- ocb-perp-volume-history:2112
labels:
benchmark: perp-daily-volume
host: openchainbench
# ─ Trading app daily volume (bench 267) ───────────────────────────────
# Container ocb-trading-app-volume on the Paris VPS. Cross-chain swap
# volume per trading app / Telegram bot per closed UTC day from
# DeFiLlama's free dexs summary; the full series with the per-chain
# split is served by Caddy at
# kv.openchainbench.com/aggregate/trading-apps/history.json.
- job_name: trading-app-volume
metrics_path: /metrics
scheme: http
static_configs:
- targets:
- ocb-trading-app-volume:2112
labels:
benchmark: trading-app-daily-volume
host: openchainbench
# ─ Terminal activity (benches 203, 206, 207, 232) ─────────────────────
# Container ocb-terminal-activity on the OCB VPS. Daily volume,
# transactions, fees and distinct wallets per trading terminal per chain,
# from the public tehcscreener API (Allium-backed, no key). Replaces the
# dune-platform-volume source for these four benches, which were gated to
# staging on 2026-10-02 when the Dune trial ended. No secret to inject.
- job_name: terminal-activity
metrics_path: /metrics
scheme: http
static_configs:
- targets:
- ocb-terminal-activity:2116
labels:
benchmark: trading-platform-wallets
host: openchainbench
# ─ USDC corridor flows (bench 281) ────────────────────────────────────
# Container ocb-bridge-flows on the Paris VPS. Circle CCTP burns
# (DepositForBurn v1 and v2) read off seven EVM chains over public RPCs,
# bucketed per destination; Wormholescan outbound volume per chain per
# UTC day; L2Beat TVS deltas. State under /data/state/bridge-flows.
- job_name: bridge-flows
metrics_path: /metrics
scheme: http
static_configs:
- targets:
- ocb-bridge-flows:2112
labels:
benchmark: usdc-corridor-flows
host: openchainbench
# Container ocb-terminal-fill-quality on the Paris VPS. Cost per swap on
# each Solana trading terminal from sampled user transactions read
# on-chain (bench 268); per-terminal stats and recent samples served by
# Caddy at kv.openchainbench.com/aggregate/terminal-fills/fills.json.
- job_name: terminal-fill-quality
metrics_path: /metrics
scheme: http
static_configs:
- targets:
- ocb-terminal-fill-quality:2112
labels:
benchmark: terminal-fill-quality
host: openchainbench
# Container ocb-rpc-cost. What each RPC provider bills for a fixed set of
# workload profiles (bench 282), plus the freshness and drift of every
# upstream pricing artifact the catalogue was verified against. Holds no
# API keys and sends no RPC traffic: its only outbound requests are HTTP
# GETs of public pricing pages.
- job_name: rpc-cost
metrics_path: /metrics
scheme: http
scrape_interval: 5m
static_configs:
- targets:
- ocb-rpc-cost:2112
labels:
benchmark: rpc-cost
host: openchainbench
# Container ocb-price-api-accuracy. How far the USD price each market-data
# API publishes sits from the Coinbase/Kraken/Binance mid of the same
# moment (bench 305). Keys in /run/ocb/.env.price-api-accuracy; CoinGecko
# goes through the metadata-coverage proxy. Recording rules in
# infrastructure/monitoring/prometheus/recording_rules/ocb_price_api_accuracy.yml.
- job_name: price-api-accuracy
metrics_path: /metrics
scheme: http
static_configs:
- targets:
- ocb-price-api-accuracy:2112
labels:
benchmark: price-api-accuracy
host: openchainbench
# ─ Self-scrape ────────────────────────────────────────────────────────
# Surfaces Prometheus's own health (scrape error rates, target up/down)
# in the same UI used to debug harnesses.
- job_name: prometheus
static_configs:
- targets:
- localhost:9090