bcgov / bcgov/traction

Observability: Initial instrumentation

Open
#2,014 1 comment 0 reactions 0 assignees View on GitHub
pinned
Dominant language
TypeScript
Stars
62
Forks
59
Avg merge
1d 11h
Merged PRs (30d)
5

Description

## Description

Add OTel instrumentation to the tenant-ui (Node.js/Express) component. The ACA-Py plugin (`traction_innkeeper`) requires no separate code changes — it runs inside the same ACA-Py process and inherits all instrumentation from the acapy-agent OTel work.

## Requirements

- Add `@opentelemetry/sdk-node`, `@opentelemetry/auto-instrumentations-node`, `@opentelemetry/sdk-metrics`, `@opentelemetry/exporter-trace-otlp-http`, `@opentelemetry/exporter-metrics-otlp-http` to `tenant-ui` dependencies
- Create `src/tracing.ts` with `NodeSDK` configured with both trace and metric exporters using the HTTP/protobuf exporters (port 4318) — do **not** use gRPC exporters
- Import as the first line of `src/index.ts` before Express initializes

## Acceptance Criteria

- [ ] tenant-ui HTTP spans visible in Tempo
- [ ] HTTP RED metrics from tenant-ui appear in Mimir
- [ ] No regression in existing test suite

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the tenant-ui dependency manifest and the startup flow in src/index.ts, then inspect the requested src/tracing.ts entry point and HTTP/protobuf exporter requirements. Run the existing test suite and verify that tenant-ui spans reach Tempo and RED metrics appear in Mimir without regressions.

Written by the indexing model from the issue text.

Assessment

Tech stack
express, node.js, typescript
Domain
backend, observability
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.