feat(export): OTLP/JSON exporter for OpenTelemetry integration
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 52/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- javascript
- Área
- observability
Línea de trabajo
Comienza con la interfaz LogExporter de #139 y con el punto de entrada de configuración userale.start mostrado en el issue. Sigue cómo se gestionan exporterType y otlpEndpoint, implementa después las correspondencias documentadas de Flagon-to-OTLP y verifica que los logs lleguen al endpoint estándar /v1/logs con la estructura JSON especificada.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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
LogRecordattributes 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)
- Lenguaje dominante
- Jupyter Notebook
- Estrellas
- 30
- Forks
- 15
- Merge medio
- 7 d 11 h
- PR fusionados (30 d)
- 2
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de apache/flagon
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
release: v2.5.0 — Sign of LifeAbiertoprocess
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
-
Discuss enhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
-
enhancement experimental
Dificultad 5/5 Más de una semana Aptitud para principiantes 42/100
-
enhancement Userale
Dificultad 4/5 3-5 días Aptitud para principiantes 38/100
Todos los issues de apache/flagon
Issues similares
-
bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 84/100
open-telemetry/opentelemetry-php#2071 ·
Los mantenedores suelen responder en 1 día
-
bug external Needs Feedback
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 64/100
-
area:cost enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
anthropics/claude-code#100113 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
Los mantenedores suelen responder en 1 día