{"id":47873158,"url":"https://github.com/eclipse-osgi-technology/opentelemetry","last_synced_at":"2026-04-04T00:59:20.319Z","repository":{"id":346847151,"uuid":"1191541283","full_name":"eclipse-osgi-technology/opentelemetry","owner":"eclipse-osgi-technology","description":"Open Telemetry for OSGi","archived":false,"fork":false,"pushed_at":"2026-03-31T10:37:05.000Z","size":352,"stargazers_count":0,"open_issues_count":0,"forks_count":2,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-04T00:59:16.331Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://projects.eclipse.org/projects/technology.osgi-technology","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"epl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eclipse-osgi-technology.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-03-25T10:50:23.000Z","updated_at":"2026-03-31T10:36:17.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/eclipse-osgi-technology/opentelemetry","commit_stats":null,"previous_names":["eclipse-osgi-technology/opentelemetry"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/eclipse-osgi-technology/opentelemetry","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-osgi-technology%2Fopentelemetry","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-osgi-technology%2Fopentelemetry/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-osgi-technology%2Fopentelemetry/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-osgi-technology%2Fopentelemetry/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eclipse-osgi-technology","download_url":"https://codeload.github.com/eclipse-osgi-technology/opentelemetry/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-osgi-technology%2Fopentelemetry/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31383636,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-03T23:20:52.058Z","status":"ssl_error","status_checked_at":"2026-04-03T23:20:51.675Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-04-04T00:59:18.707Z","updated_at":"2026-04-04T00:59:20.296Z","avatar_url":"https://github.com/eclipse-osgi-technology.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OpenTelemetry for OSGi\n\nIntegrates [OpenTelemetry](https://opentelemetry.io/) with [OSGi](https://www.osgi.org/), providing traces, metrics, and logs for OSGi applications.\n\n## Overview\n\nThis project publishes the OpenTelemetry SDK as an OSGi service and bridges various OSGi subsystems into OpenTelemetry telemetry signals.\nIt also provides zero-code bytecode instrumentation via the OSGi WeavingHook mechanism.\n\n- **Maven GroupId**: `org.eclipse.osgi-technology.opentelemetry`\n- **Package namespace**: `org.eclipse.osgi.technology.opentelemetry`\n- **Java**: 21\n- **OpenTelemetry**: 1.60.0\n- **License**: EPL-2.0\n\n## Repository Structure\n\n```\nopentelemetry/\n├── pom.xml                          # Parent POM with dependency management\n├── repack/                          # OpenTelemetry SDK repackaged as OSGi bundle\n├── core/                            # Core runtime\n│   ├── commons/                     # Shared base classes and provider registration\n│   ├── sender.http/                 # OTLP/HTTP exporter\n│   └── sender.logging/                  # Logging (stdout) exporter\n├── integration/                     # OSGi subsystem bridges\n│   ├── framework/                   # Bundle/service counts, events, inventory\n│   ├── scr/                         # Declarative Services component metrics\n│   ├── log/                         # Log Service → OpenTelemetry bridge\n│   ├── cm/                          # Configuration Admin events and inventory\n│   ├── mxbeans/                     # JVM runtime metrics (memory, CPU, threads, GC)\n│   ├── felix.healthcheck/           # Felix Health Check metrics and tracing\n│   ├── typedevent/                  # Typed Event bus observation\n│   ├── jakarta.servlet/             # HTTP Whiteboard runtime introspection\n│   └── jakarta.rest/                # JAX-RS Whiteboard runtime introspection\n├── weaving/                         # OSGi WeavingHook bytecode instrumentation\n│   ├── hook/                        # Host bundle: WeavingHook, ASM embedded\n│   ├── jakarta.servlet/             # HttpServlet request tracing\n│   ├── jakarta.rest/                # JAX-RS endpoint tracing\n│   ├── jdbc/                        # JDBC operation tracing\n│   └── scr/                         # DS lifecycle method tracing\n├── examples/                        # Example application\n│   └── app/                         # Demo servlets, JAX-RS resources, telemetry producers\n└── container/                       # Observability stack (Podman pod)\n```\n\n## Modules\n\n### Core\n\n| Module | Description |\n|---|---|\n| [commons](core/commons/) | Shared base classes, provider registration for `TracerProvider`, `MeterProvider`, `LoggerProvider`, `ContextPropagators` |\n| [sender.http](core/sender.http/) | OTLP/HTTP exporter with batch processing, compression, mTLS support |\n| [sender.logging](core/sender.logging/) | Logging exporter (stdout via java.util.logging) for development/debugging |\n\nThe core modules publish `io.opentelemetry.api.OpenTelemetry` and individual provider interfaces (`TracerProvider`, `MeterProvider`, `LoggerProvider`, `ContextPropagators`) to the OSGi service registry.\n\n### Integration\n\n| Module | Description |\n|---|---|\n| [framework](integration/framework/) | Bundle/service counts, state distribution, event tracing, live inventory |\n| [scr](integration/scr/) | DS component state metrics, inventory, and health traces |\n| [log](integration/log/) | Log Service bridge forwarding `LogEntry` records to OTel |\n| [cm](integration/cm/) | Configuration Admin change events, config counts, and inventory |\n| [mxbeans](integration/mxbeans/) | JVM runtime metrics (memory, CPU, threads, GC, class loading, pools) |\n| [felix.healthcheck](integration/felix.healthcheck/) | Felix Health Check execution metrics, tracing, and inventory |\n| [typedevent](integration/typedevent/) | Typed Event bus observation with per-topic metrics and trace spans |\n| [jakarta.servlet](integration/jakarta.servlet/) | HTTP Whiteboard runtime introspection (servlet contexts, servlets, filters) |\n| [jakarta.rest](integration/jakarta.rest/) | JAX-RS Whiteboard runtime introspection (applications, resources, extensions) |\n\nEach integration module consumes the `OpenTelemetry` service from the core runtime and produces domain-specific traces, metrics, and logs.\n\n### Weaving\n\n| Module | Description |\n|---|---|\n| [hook](weaving/hook/) | Host bundle: WeavingHook, WeaverRegistry, OpenTelemetryProxy, ASM embedded |\n| [jakarta.servlet](weaving/jakarta.servlet/) | `HttpServlet` subclasses — HTTP request tracing and metrics |\n| [jakarta.rest](weaving/jakarta.rest/) | `@Path`-annotated JAX-RS resources — REST endpoint tracing |\n| [jdbc](weaving/jdbc/) | JDBC `Statement` implementations — database operation tracing |\n| [scr](weaving/scr/) | DS component lifecycle methods — activate/deactivate/modified tracing |\n\nThe weaving system uses a host bundle + fragment bundle architecture.\nFragment bundles share the host's classloader, so plain Java `ServiceLoader` discovers weaver implementations without SPI Fly.\n\n## Build\n\n```bash\n# Full build\nmvn clean verify\n\n# Build a single module\nmvn clean verify -pl core/commons\n```\n\nRequires Java 21 and Maven 3.9+.\n\n## License\n\n[Eclipse Public License 2.0](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feclipse-osgi-technology%2Fopentelemetry","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feclipse-osgi-technology%2Fopentelemetry","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feclipse-osgi-technology%2Fopentelemetry/lists"}