Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

feat(export): OTLP/JSON exporter for OpenTelemetry integration

Open
#140 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
52/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Quiet
Tech stack
javascript
Domain
observability

Research direction

Start with the LogExporter interface from #139 and the userale.start configuration entry point shown in the issue. Trace how exporterType and otlpEndpoint are handled, then implement the documented Flagon-to-OTLP mappings and verify that logs reach the standard /v1/logs endpoint with the specified JSON structure.

Written by the indexing model from the issue text.

Description

enhancement Userale

Summary

Implement an OtlpJsonExporter that sends UserALE logs to any OpenTelemetry Collector via OTLP/HTTP JSON.

Motivation

OpenTelemetry is the de-facto standard for observability. OTLP support lets Flagon users send behavioral data to Grafana, Datadog, Jaeger, and any OTel-compatible backend — without building custom ingestion pipelines.

No competing behavioral analytics library (PostHog, Matomo, Plausible) speaks OTLP. This is a differentiation opportunity.

Design

  • Maps Flagon log fields → OTLP LogRecord attributes using OTel semantic conventions
  • Builds OTLP/JSON payloads using plain objects (zero external dependencies)
  • Ships to standard OTLP HTTP receiver (port 4318, /v1/logs)
  • ~150 lines of code, ~2-3 KB gzipped added to bundle

Attribute Mapping

Flagon Field OTLP Mapping
clientTime timeUnixNano
toolName resource.service.name
useraleVersion resource.telemetry.sdk.version
userId attributes.enduser.id
sessionId attributes.session.id
pageUrl attributes.url.full
target attributes.flagon.dom.target
type attributes.flagon.event_type
logType attributes.flagon.log_type
details body (JSON string)

User Experience

// One config change to enable OTLP
userale.start({
  exporterType: 'otlp',
  otlpEndpoint: 'http://localhost:4318',
});

Depends On

  • #139 (LogExporter interface)
Dominant language
Jupyter Notebook
Stars
30
Forks
15
Avg merge
7d 11h
Merged PRs (30d)
2

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from apache/flagon

All issues in apache/flagon

Similar issues

More Observability & SRE issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.