Files
self bdaa292278 feat: add sender viewer metrics
Track active Sender viewers from browser heartbeats and HLS IP fallback, filtering localhost access and exporting a low-cardinality plugin metric for Tribes rollups.

Extend the Docker origin/edge E2E harness with VictoriaMetrics/vmagent scraping and assertions for live /metrics export plus compact rollup storage. Update docs for the host metrics path.
2026-05-14 19:00:12 +02:00

147 lines
4.7 KiB
YAML

services:
db-origin:
image: postgres:17
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: postgres
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 2s
timeout: 3s
retries: 30
db-edge:
image: postgres:17
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: postgres
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 2s
timeout: 3s
retries: 30
vm-origin:
image: victoriametrics/victoria-metrics:v1.138.0
command:
- -storageDataPath=/victoria-metrics-data
- -httpListenAddr=:8428
ports:
- "48111:8428"
vm-edge:
image: victoriametrics/victoria-metrics:v1.138.0
command:
- -storageDataPath=/victoria-metrics-data
- -httpListenAddr=:8428
ports:
- "48112:8428"
migrate-origin:
image: ${TRIBES_SENDER_IMAGE:-tribes-sender-e2e:latest}
depends_on:
db-origin:
condition: service_healthy
environment: &origin_env
MIX_ENV: prod
PHX_SERVER: "true"
PORT: "4000"
PHX_HOST: sender-origin
DATABASE_URL: ecto://postgres:postgres@db-origin:5432/tribes_origin
PARRHESIA_DATABASE_URL: ecto://postgres:postgres@db-origin:5432/parrhesia_origin
SECRET_KEY_BASE: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
TOKEN_SIGNING_SECRET: sender-e2e-token-secret
PARRHESIA_RELAY_URL: ws://sender-origin:4000/nostr/relay
PARRHESIA_IDENTITY_PRIVATE_KEY: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
TRIBES_VICTORIAMETRICS_URL: http://vm-origin:8428
TRIBES_METRICS_ALLOWED_CIDRS: 0.0.0.0/0,::/0
command: ["eval", "Tribes.Release.migrate_with_storage_up()"]
migrate-edge:
image: ${TRIBES_SENDER_IMAGE:-tribes-sender-e2e:latest}
depends_on:
db-edge:
condition: service_healthy
environment:
<<: *origin_env
PHX_HOST: sender-edge
DATABASE_URL: ecto://postgres:postgres@db-edge:5432/tribes_edge
PARRHESIA_DATABASE_URL: ecto://postgres:postgres@db-edge:5432/parrhesia_edge
PARRHESIA_RELAY_URL: ws://sender-edge:4000/nostr/relay
PARRHESIA_IDENTITY_PRIVATE_KEY: bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
TRIBES_VICTORIAMETRICS_URL: http://vm-edge:8428
command: ["eval", "Tribes.Release.migrate_with_storage_up()"]
sender-origin:
image: ${TRIBES_SENDER_IMAGE:-tribes-sender-e2e:latest}
depends_on:
db-origin:
condition: service_healthy
vm-origin:
condition: service_started
environment:
<<: *origin_env
TRIBES_BOOTSTRAP_FILE: /etc/tribes/bootstrap.json
volumes:
- ${SENDER_PLUGIN_ROOT}/test/e2e/bootstrap/origin.json:/etc/tribes/bootstrap.json:ro
ports:
- "46101:4000"
- "47101:4413"
- "49135:1935"
command: ["start"]
vmagent-origin:
image: victoriametrics/vmagent:v1.138.0
network_mode: "service:sender-origin"
depends_on:
sender-origin:
condition: service_started
vm-origin:
condition: service_started
volumes:
- ${SENDER_PLUGIN_ROOT}/test/e2e/vmagent/promscrape.yml:/etc/vmagent/promscrape.yml:ro
command:
- -promscrape.config=/etc/vmagent/promscrape.yml
- -remoteWrite.url=http://vm-origin:8428/api/v1/write
- -httpListenAddr=127.0.0.1:8429
sender-edge:
image: ${TRIBES_SENDER_IMAGE:-tribes-sender-e2e:latest}
depends_on:
db-edge:
condition: service_healthy
vm-edge:
condition: service_started
environment:
<<: *origin_env
PHX_HOST: sender-edge
DATABASE_URL: ecto://postgres:postgres@db-edge:5432/tribes_edge
PARRHESIA_DATABASE_URL: ecto://postgres:postgres@db-edge:5432/parrhesia_edge
PARRHESIA_RELAY_URL: ws://sender-edge:4000/nostr/relay
PARRHESIA_IDENTITY_PRIVATE_KEY: bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
TRIBES_VICTORIAMETRICS_URL: http://vm-edge:8428
TRIBES_BOOTSTRAP_FILE: /etc/tribes/bootstrap.json
volumes:
- ${SENDER_PLUGIN_ROOT}/test/e2e/bootstrap/edge.json:/etc/tribes/bootstrap.json:ro
ports:
- "46102:4000"
- "47102:4413"
command: ["start"]
vmagent-edge:
image: victoriametrics/vmagent:v1.138.0
network_mode: "service:sender-edge"
depends_on:
sender-edge:
condition: service_started
vm-edge:
condition: service_started
volumes:
- ${SENDER_PLUGIN_ROOT}/test/e2e/vmagent/promscrape.yml:/etc/vmagent/promscrape.yml:ro
command:
- -promscrape.config=/etc/vmagent/promscrape.yml
- -remoteWrite.url=http://vm-edge:8428/api/v1/write
- -httpListenAddr=127.0.0.1:8429