I'd like to contribute the OpenTelemetry for Beginners - The JavaScript Journey series repo.
This is a hands-on learning series that accompanies the YouTube video series.
The series follows a repeatable pattern across all three signals:
Signal: Barebones Setup | Add Processors
Traces: Ready | Ready
Metrics: In progress | In progress
Logs: Planned | Planned
Each signal will have two branches:
- Bare bones setup: Instrument the app, send telemetry to the Collector, export to a backend (no processing)
- Add processors: Same setup + Collector processors to transform data before export
This structure allows learners to first understand the baseline telemetry flow, then layer on processing concepts, repeated consistently across traces, metrics, and logs.
Current Contribution: Traces
I'm starting with traces, which includes two branches:
1. traces-bare-bones-setup
- A simple Node.js "Roll the Dice" Express app
- Basic auto-instrumentation using
@opentelemetry/auto-instrumentations-node
- Minimal OTel Collector config (OTLP receiver and Jaeger exporter)
- Docker Compose setup for Collector and Jaeger
2. traces-add-processors
- Same app and instrumentation as above
- Introduces Collector processors to transform traces:
resource processor (add/remove resource attributes)
attributes processor (remove sensitive span attributes)
batch processor (efficient export)
Preview
You can preview the complete code and README in my working repository.
Branches available:
Questions for Maintainers
Before I submit PRs, I'd like to confirm the preferred approach:
-
Branch strategy: Should these be standalone branches in the repo, or should the content live in a subfolder on main (e.g., javascript/traces/)?
-
PR structure: Should I submit one PR per branch, or a single PR with both?
-
Naming convention: Are the branch names traces-bare-bones-setup and traces-add-processors appropriate, or is there a preferred naming scheme?
Unless suggested otherwise, I am planning on calling to future branches metrics-bare-bones-setup, metrics-add-processors,logs-bare-bones-setup, and logs-add-processors.
For your reference
I am happy to adjust based on feedback. Thanks for your time!
I'd like to contribute the OpenTelemetry for Beginners - The JavaScript Journey series repo.
This is a hands-on learning series that accompanies the YouTube video series.
The series follows a repeatable pattern across all three signals:
Signal: Barebones Setup | Add Processors
Traces: Ready | Ready
Metrics: In progress | In progress
Logs: Planned | Planned
Each signal will have two branches:
This structure allows learners to first understand the baseline telemetry flow, then layer on processing concepts, repeated consistently across traces, metrics, and logs.
Current Contribution: Traces
I'm starting with traces, which includes two branches:
1.
traces-bare-bones-setup@opentelemetry/auto-instrumentations-node2.
traces-add-processorsresourceprocessor (add/remove resource attributes)attributesprocessor (remove sensitive span attributes)batchprocessor (efficient export)Preview
You can preview the complete code and README in my working repository.
Branches available:
traces-bare-bones-setuptraces-add-processorsQuestions for Maintainers
Before I submit PRs, I'd like to confirm the preferred approach:
Branch strategy: Should these be standalone branches in the repo, or should the content live in a subfolder on
main(e.g.,javascript/traces/)?PR structure: Should I submit one PR per branch, or a single PR with both?
Naming convention: Are the branch names
traces-bare-bones-setupandtraces-add-processorsappropriate, or is there a preferred naming scheme?Unless suggested otherwise, I am planning on calling to future branches
metrics-bare-bones-setup,metrics-add-processors,logs-bare-bones-setup, andlogs-add-processors.For your reference
I am happy to adjust based on feedback. Thanks for your time!