@@ -37,31 +37,11 @@ Source lives in `src/mcp_server_appwrite/`:
3737
3838### Telemetry (metrics)
3939
40- The hosted HTTP server emits OpenTelemetry metrics over OTLP/HTTP to the shared
41- Appwrite observability stack (OpenTelemetry Collector → Prometheus/Mimir → Grafana
42- at ` telemetry.appwrite.systems ` ), mirroring the ` utopia-php/telemetry ` pattern used
43- by the PHP services. All instrumentation lives in ` telemetry.py ` and is wired in at
44- the operator/handler/auth boundaries.
45-
46- * ** Hosted-only & no-op by default.** Telemetry is enabled only when the transport
47- is ` http ` * and* an OTLP endpoint is set. The self-hosted ` stdio ` transport never
48- emits, and an unconfigured hosted server is a silent no-op.
49- * ** Config (env):** ` OTEL_EXPORTER_OTLP_ENDPOINT ` enables export and points at the
50- in-cluster Alloy collector (` http://alloy.telemetry.svc.cluster.local:4318 ` ). Alloy
51- authenticates and forwards upstream and ** upserts** the ` deployment.environment.name `
52- / ` deployment.region.name ` / ` deployment.cluster.name ` resource attributes that the
53- fleet-wide Grafana dashboards filter on — so the app needs no credentials and no
54- ` OTEL_RESOURCE_ATTRIBUTES ` .
55- * ** Metrics** are prefixed ` mcp. ` (e.g. ` mcp.requests ` , ` mcp.appwrite.calls ` ,
56- ` mcp.initializations ` , ` mcp.auth.validations ` ). User ids (` sub ` ) are never used as
57- labels — distinct-user/-client counts are derived in-process and exposed only as
58- the aggregate gauges ` mcp.users.active ` / ` mcp.clients.active ` .
59- * ** Dashboards** live in the separate ` dashboards ` repo under ` MCP/ `
60- (` overview.json ` , ` adoption.json ` ).
61- * ** Local check:** run an OTel Collector on ` :4318 ` with a debug exporter, start the
62- server with ` OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318 ... --transport http ` ,
63- and confirm metrics appear. Unit tests use an in-memory reader
64- (` tests/unit/test_telemetry.py ` ) — no collector required.
40+ ` telemetry.py ` emits OpenTelemetry metrics (prefixed ` mcp. ` ) over OTLP/HTTP. It is a
41+ no-op unless the transport is ` http ` and ` OTEL_EXPORTER_OTLP_ENDPOINT ` is set, so
42+ ` stdio ` and unconfigured servers stay silent. In the cluster that endpoint is the
43+ Alloy collector, which adds the ` deployment.* ` labels and forwards upstream — the app
44+ needs no credentials. Dashboards live in the ` dashboards ` repo under ` MCP/ ` .
6545
6646### Tool surface (key design point)
6747
0 commit comments