### Install Dependencies for Development Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/ecosystem-automation/dotnet-instrumentation-watcher/README.md Install project dependencies using uv sync. ```bash uv sync ``` -------------------------------- ### Install Dependencies Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/ecosystem-explorer/README.md Installs project dependencies using Bun. Run this command after cloning the repository. ```bash bun install ``` -------------------------------- ### Install KtorServerTelemetry Feature Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/ecosystem-explorer/public/data/javaagent/markdown/ktor-1.0-95edd47db391.md Initialize Ktor server instrumentation by installing the KtorServerTelemetry feature and configuring it with an OpenTelemetry instance. ```kotlin OpenTelemetry openTelemetry = ... embeddedServer(Netty, 8080) { install(KtorServerTelemetry) { setOpenTelemetry(openTelemetry) } } ``` -------------------------------- ### Install Project Dependencies Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/CONTRIBUTING.md Install all project dependencies, including Python packages using uv and JavaScript packages using Bun. ```bash # Install Python dependencies using uv uv sync --all-groups # Install JavaScript dependencies for markdown linting (from repo root) bun install # Install ecosystem-explorer dependencies cd ecosystem-explorer && bun install && cd .. # Set up pre-commit hooks (recommended) uv run pre-commit install ``` -------------------------------- ### Versions Index Example Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/docs/content-addressed-storage.md Lists all available versions of the ecosystem explorer data. This file should be served with a short TTL. ```json { "versions": [ { "version": "2.24.0", "is_latest": true }, { "version": "2.23.0", "is_latest": false } ] } ``` -------------------------------- ### Clone and Run Locally Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/CONTRIBUTING.md Clone the repository, install dependencies, and run the local development server to browse instrumentations and components. ```bash git clone https://github.com/YOUR_USERNAME/opentelemetry-ecosystem-explorer.git cd opentelemetry-ecosystem-explorer uv sync --all-groups && bun install cd ecosystem-explorer && bun install && bun run serve # Visit http://localhost:5173 ``` -------------------------------- ### Programmatic Installation of OpenTelemetryAppender Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/ecosystem-explorer/public/data/javaagent/markdown/log4j-appender-2.17-06d7815676a1.md Install the OpenTelemetryAppender programmatically by providing an initialized OpenTelemetrySdk instance. This step is crucial for the appender to function correctly. ```java import io.opentelemetry.instrumentation.log4j.appender.v2_17.OpenTelemetryAppender; import io.opentelemetry.sdk.OpenTelemetrySdk; public class Application { public static void main(String[] args) { OpenTelemetrySdk openTelemetrySdk = // Configure OpenTelemetrySdk // Find OpenTelemetryAppender in log4j configuration and install openTelemetrySdk OpenTelemetryAppender.install(openTelemetrySdk); // ... proceed with application } } ``` -------------------------------- ### Run All Tests Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/ecosystem-automation/README.md Execute all tests within the ecosystem-automation directory. Ensure you are in the repository root and have `uv` installed. ```bash uv run pytest ecosystem-automation/ ``` -------------------------------- ### Programmatic OpenTelemetrySdk Installation Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/ecosystem-explorer/public/data/javaagent/markdown/logback-appender-1.0-875acf087a04.md Install the OpenTelemetrySdk instance programmatically during application startup to enable the OpenTelemetryAppender. This ensures the appender has access to the configured OpenTelemetry instance. ```java import io.opentelemetry.instrumentation.logback.appender.v1_0.OpenTelemetryAppender; import io.opentelemetry.sdk.OpenTelemetrySdk; public class Application { public static void main(String[] args) { OpenTelemetrySdk openTelemetrySdk = // Configure OpenTelemetrySdk // Find OpenTelemetryAppender in logback configuration and install openTelemetrySdk OpenTelemetryAppender.install(openTelemetrySdk); // ... proceed with application } } ``` -------------------------------- ### Run Development Server Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/ecosystem-explorer/README.md Starts the development server for local development. This command is used for active development and hot-reloading. ```bash bun run serve ``` -------------------------------- ### Example: V1 Registry Check and YAML Output Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/ecosystem-automation/v1-registry-sync/README.md Run the V1 registry sync tool with specific options to check against the V1 registry, output in YAML format, and save to a file. ```bash uv run v1-registry-sync \ --v1-registry-dir ../opentelemetry.io/data/registry \ --format yaml \ --output sync-report.yaml ``` -------------------------------- ### Install uv Package Manager Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/CONTRIBUTING.md Install the uv Python package installer and resolver. This is a required tool for managing Python dependencies. ```bash pip install uv ``` -------------------------------- ### Version Manifest Example Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/docs/content-addressed-storage.md Maps component IDs to their content hashes for a specific version. This file has a long TTL as it doesn't change after a version release. ```json { "version": "2.24.0", "instrumentations": { "aws-sdk-2.2": "cc07cd659de1", "spring-boot-3.0": "8f9a2b3c4d5e", "http-url-connection": "bc83dcd98c80" } } ``` -------------------------------- ### Run Java Instrumentation Watcher Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/ecosystem-automation/AGENTS.md Starts the Java instrumentation watcher process. ```bash uv run java-instrumentation-watcher ``` -------------------------------- ### Configure Java HTTP Server with OpenTelemetry Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/ecosystem-explorer/public/data/javaagent/markdown/java-http-server-1fbd5c1c2bbc.md This example shows how to create an HTTP server and configure it with OpenTelemetry telemetry using the JavaHttpServerTelemetry.create().configure() method. Ensure OpenTelemetry is properly initialized. ```java import java.io.IOException; import java.net.InetSocketAddress; import com.sun.net.httpserver.HttpContext; import com.sun.net.httpserver.HttpServer; import io.opentelemetry.api.OpenTelemetry; import io.opentelemetry.sdk.OpenTelemetrySdk; public class Application { static void main(String args) throws IOException { final HttpServer server = HttpServer.create(new InetSocketAddress(8080), 0); final HttpContext context = server.createContext( "/", ctx -> { // http logic }); OpenTelemetry openTelemetry = //...; JavaHttpServerTelemetry.create(openTelemetry).configure(context); } } ``` -------------------------------- ### Check Bun Version Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/CONTRIBUTING.md Verify your installed Bun version. Bun is used for the ecosystem-explorer frontend and markdown linting. ```bash bun --version ``` -------------------------------- ### YAML Frontmatter Example Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/projects/_index.md Provides an example of the YAML frontmatter required for markdown files within initiative folders, including fields for title, issue, type, phase, status, and last updated date. ```yaml --- title: "Phase 1 — Foundation" # human-readable; mirrors the H1 issue: 84 # GitHub issue number; matches parent folder type: plan # plan | audit | brief | roadmap | index phase: 1 # 1-N or "meta" for cross-phase docs status: planning # planning | in-progress | complete | archived last_updated: "2026-05-06" # ISO date as quoted string (bare YAML dates fail validation) --- ``` -------------------------------- ### Setup WebClient and Webflux Server Instrumentation Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/ecosystem-explorer/public/data/javaagent/markdown/spring-webflux-5.3-2c795bbfeac7.md Configure Spring Webflux client and server instrumentation by creating beans for SpringWebfluxClientTelemetry and SpringWebfluxServerTelemetry. ```java import io.opentelemetry.instrumentation.spring.webflux.v5_3.SpringWebfluxClientTelemetry; import io.opentelemetry.instrumentation.spring.webflux.v5_3.SpringWebfluxServerTelemetry; @Configuration public class WebClientConfig { private final SpringWebfluxClientTelemetry webfluxClientTelemetry; private final SpringWebfluxServerTelemetry webfluxServerTelemetry; public WebClientConfig(OpenTelemetry openTelemetry) { this.webfluxClientTelemetry = SpringWebfluxClientTelemetry.builder(openTelemetry).build(); } // Adds instrumentation to WebClients @Bean public WebClient.Builder webClient() { WebClient webClient = WebClient.create(); return webClient.mutate().filters(webfluxClientTelemetry::addFilter); } // Adds instrumentation to Webflux server @Bean public WebFilter webFilter() { return webfluxServerTelemetry.createWebFilterAndRegisterReactorHook(); } } ``` -------------------------------- ### Initialize Ktor Client Instrumentation Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/ecosystem-explorer/public/data/javaagent/markdown/ktor-2.0-08a3644d1ffc.md Initialize client-side instrumentation by installing the KtorClientTelemetry feature and setting the OpenTelemetry instance. This is done within the HttpClient configuration block. ```kotlin val openTelemetry: OpenTelemetry = ... val client = HttpClient { install(KtorClientTelemetry) { setOpenTelemetry(openTelemetry) } } ``` -------------------------------- ### Check Python Version Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/CONTRIBUTING.md Verify your installed Python version. The project requires Python 3.11 or higher. ```bash python --version ``` ```bash python3 --version ``` -------------------------------- ### Configure Logback Appender Settings Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/ecosystem-explorer/public/data/javaagent/markdown/logback-appender-1.0-875acf087a04.md Example of how to configure the OpenTelemetry appender in logback.xml, including capturing experimental attributes and MDC attributes. ```xml true * ``` -------------------------------- ### Component Data File Example Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/docs/content-addressed-storage.md Contains the full metadata for a single component, identified by its content hash. This file is immutable and can be cached indefinitely. ```json { "name": "aws-sdk-2.2", "display_name": "AWS SDK 2.2", "description": "Instrumentation for AWS SDK 2.2+ client library", "scope": { "name": "io.opentelemetry.aws-sdk-2.2" }, "telemetry": [ { "when": "default", "spans": [ { "span_kind": "CLIENT", "attributes": [ { "name": "aws.request_id", "type": "STRING" } ] } ] } ] } ``` -------------------------------- ### Usage Example: Tracing Elasticsearch REST Client Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/ecosystem-explorer/public/data/javaagent/markdown/elasticsearch-rest-7.0-12c05129aaf3.md This Java code demonstrates how to instrument the Elasticsearch REST client. It shows obtaining an OpenTelemetry instance, creating an ElasticsearchRest7Telemetry instance, building a RestClient, and then wrapping the client with the telemetry. ```java import io.opentelemetry.api.OpenTelemetry; import io.opentelemetry.instrumentation.elasticsearch.rest.v7_0.ElasticsearchRest7Telemetry; import org.apache.http.HttpHost; import org.elasticsearch.client.RestClient; // ... // Get an OpenTelemetry instance OpenTelemetry openTelemetry = ...; // Create an ElasticsearchRest7Telemetry instance ElasticsearchRest7Telemetry telemetry = ElasticsearchRest7Telemetry.create(openTelemetry); // Create a RestClient RestClient restClient = RestClient.builder(new HttpHost("localhost", 9200, "http")).build(); // Wrap the client RestClient tracedClient = telemetry.wrap(restClient); // ... use the tracedClient to make requests ``` -------------------------------- ### DetailCard Usage Example Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/ecosystem-explorer/DESIGN_V1.md Example of how to use the DetailCard component with a type stripe, grid pattern, and hover effect. ```tsx {children} ``` -------------------------------- ### Restlet 2.0+ Usage Example Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/ecosystem-explorer/public/data/javaagent/markdown/restlet-2.0-3589102b837d.md This Java example shows how to create and apply the RestletTelemetry filter to an Application. Ensure you have an OpenTelemetry instance available. ```java import io.opentelemetry.api.OpenTelemetry; import io.opentelemetry.instrumentation.restlet.v2_0.RestletTelemetry; import org.restlet.Application; import org.restlet.Restlet; import org.restlet.routing.Filter; public class RestletExample { public static void main(String[] args) throws Exception { // Get an OpenTelemetry instance OpenTelemetry openTelemetry = ...; RestletTelemetry restletTelemetry = RestletTelemetry.create(openTelemetry); Filter tracingFilter = restletTelemetry.createFilter("/api"); Application application = new Application() { @Override public Restlet createInboundRoot() { return tracingFilter; } }; } } ``` -------------------------------- ### Build Explorer Database Incrementally Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/ecosystem-automation/explorer-db-builder/README.md Use this command to build the database, reusing existing content-addressed files for efficiency. Run from the repository root. ```bash uv run explorer-db-builder ``` -------------------------------- ### Complete Striped Table Example Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/ecosystem-explorer/DESIGN.md A full example of a striped table with a header and alternating row backgrounds. Includes overflow handling and border styling. ```tsx
{items.map((item, index) => ( ))}
Column
{item.content}
``` -------------------------------- ### Run Configuration Watcher in Backfill Mode (Specific Versions) Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/ecosystem-automation/configuration-watcher/README.md Enable backfill mode to regenerate specific versions in the inventory. Provide a comma-separated list of versions to target. ```bash uv run configuration-watcher --backfill --versions "1.0.0,0.4.0" ``` -------------------------------- ### Preview Production Build Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/ecosystem-explorer/README.md Previews the production build locally. Use this to test the production version before deploying. ```bash bun run preview ``` -------------------------------- ### Project Directory Structure Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/projects/_index.md Illustrates the expected file and directory structure within the `projects/` directory. ```text projects/ ├── _index.md ← this file ├── frontmatter.schema.json ← validates per-initiative doc frontmatter └── -/ ← one folder per initiative (see "Current initiatives" below) ``` -------------------------------- ### Run V1 Registry Sync Tool Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/ecosystem-automation/v1-registry-sync/README.md Execute the V1 registry sync tool from the repository root. This command reads from the default directory and outputs JSON to standard output. ```bash uv run v1-registry-sync ``` -------------------------------- ### Run Configuration Watcher in Backfill Mode (All Versions) Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/ecosystem-automation/configuration-watcher/README.md Enable backfill mode to regenerate all existing versions in the inventory. This is useful for ensuring all historical schema versions are up-to-date. ```bash uv run configuration-watcher --backfill ``` -------------------------------- ### Run Collector Watcher in Backfill Mode (Versions for All Distributions) Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/ecosystem-automation/collector-watcher/README.md Apply a comma-separated list of specific versions (e.g., '0.144.0,0.145.0') to all distributions using backfill mode. This allows for broad regeneration of historical data across distributions. ```bash uv run collector-watcher --backfill --versions "0.144.0,0.145.0" ``` -------------------------------- ### Check Git Version Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/CONTRIBUTING.md Verify your installed Git version. Git is a version control system used in some automation scripts. ```bash git --version ``` -------------------------------- ### Initialize Lettuce Telemetry in Java Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/ecosystem-explorer/public/data/javaagent/markdown/lettuce-5.1-b91d9f93a269.md This Java code demonstrates how to create and use LettuceTelemetry with RedisClient. Ensure you have an OpenTelemetry instance and configure client resources with the created tracing. ```java import io.lettuce.core.RedisClient; import io.lettuce.core.api.StatefulRedisConnection; import io.lettuce.core.resource.ClientResources; import io.opentelemetry.api.OpenTelemetry; import io.opentelemetry.instrumentation.lettuce.v5_1.LettuceTelemetry; // Get an OpenTelemetry instance OpenTelemetry openTelemetry = ...; LettuceTelemetry lettuceTelemetry = LettuceTelemetry.create(openTelemetry); ClientResources clientResources = ClientResources.builder() .tracing(lettuceTelemetry.createTracing()) .build(); RedisClient redisClient = RedisClient.create(clientResources, "redis://localhost:6379"); StatefulRedisConnection connection = redisClient.connect(); ``` -------------------------------- ### Register and Unregister C3P0 Metrics with OpenTelemetry Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/ecosystem-explorer/public/data/javaagent/markdown/c3p0-0.9-25446e5eec4e.md Example of how to create a C3p0Telemetry instance, register a PooledDataSource for metrics collection, and later unregister it. ```java C3p0Telemetry c3p0Telemetry; void configure(OpenTelemetry openTelemetry, PooledDataSource dataSource) { c3p0Telemetry = C3p0Telemetry.create(openTelemetry); c3p0Telemetry.registerMetrics(dataSource); } void destroy(PooledDataSource dataSource) { c3p0Telemetry.unregisterMetrics(dataSource); } ``` -------------------------------- ### Build for Production Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/ecosystem-explorer/README.md Builds the application for production deployment. This command optimizes the code for performance. ```bash bun run build ``` -------------------------------- ### Run All Formatting Checks Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/CONTRIBUTING.md Execute all formatting tools, including Prettier and Ruff. ```bash # Run all formatting (Prettier, Ruff) bun run format uv run ruff format . ``` -------------------------------- ### Initialize and Close RuntimeMetrics Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/ecosystem-explorer/public/data/javaagent/markdown/runtime-telemetry-java17-a670bf039fd5.md Initialize `RuntimeMetrics` to start collecting runtime metrics and call `close()` to stop listening for JFR events. ```java RuntimeMetrics runtimeMetrics = RuntimeMetrics.create(openTelemetry); runtimeMetrics.close(); ``` -------------------------------- ### Generate Local Screenshots Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/CONTRIBUTING.md Generate screenshots of key pages in the ecosystem explorer locally. Ensure you have installed dependencies and the Chromium browser for Playwright. ```bash cd ecosystem-explorer bun install bun run build bunx playwright install --with-deps chromium node scripts/take-screenshots.mjs ``` -------------------------------- ### V1 Registry Sync Tool Options Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/ecosystem-automation/v1-registry-sync/README.md Lists available options for the V1 registry sync tool, including inventory directory, distribution type, V1 registry directory path, output file path, and output format. ```text --inventory-dir PATH Path to ecosystem-registry/collector (default: ecosystem-registry/collector) --distribution core or contrib (default: contrib) --v1-registry-dir PATH Path to opentelemetry.io data/registry/ -- enables v1_entry_exists checks --output PATH Output file path, or - for stdout (default: -) --format json or yaml (default: json) ``` -------------------------------- ### Configure Metric Views to Keep jvm.memory.used Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/ecosystem-registry/java/javaagent/v2.28.2-SNAPSHOT/library_readmes/runtime-telemetry-69f1ccf3457f.md Configure metric views to selectively keep metrics. This example keeps the 'jvm.memory.used' metric after dropping all others. ```yaml meter_provider: views: # Keep jvm.memory.used (views are additive, this creates a second stream) - selector: meter_name: io.opentelemetry.runtime-telemetry instrument_name: jvm.memory.used stream: {} ``` -------------------------------- ### Run .NET Instrumentation Watcher Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/ecosystem-automation/dotnet-instrumentation-watcher/README.md Execute the .NET Instrumentation Watcher from the repository root. ```bash uv run dotnet-instrumentation-watcher ``` -------------------------------- ### Register JVM Runtime Metrics Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/ecosystem-explorer/public/data/javaagent/markdown/runtime-telemetry-69f1ccf3457f.md Instantiate and register RuntimeTelemetry with your OpenTelemetry instance to start collecting JVM metrics. Remember to close the instance when done. ```java OpenTelemetry openTelemetry = // OpenTelemetry instance configured elsewhere RuntimeTelemetry runtimeTelemetry = RuntimeTelemetry.create(openTelemetry); // When done, close to stop metric collection runtimeTelemetry.close(); ``` -------------------------------- ### Configure Quartz Scheduler with OpenTelemetry Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/ecosystem-explorer/public/data/javaagent/markdown/quartz-2.0-4b4e201cb808.md This Java code demonstrates how to initialize and configure Quartz Scheduler with OpenTelemetry instrumentation. Ensure you have an OpenTelemetry instance and have added the necessary dependencies. ```java import io.opentelemetry.api.OpenTelemetry; import io.opentelemetry.instrumentation.quartz.v2_0.QuartzTelemetry; import org.quartz.Scheduler; import org.quartz.SchedulerException; import org.quartz.impl.StdSchedulerFactory; // Get an OpenTelemetry instance OpenTelemetry openTelemetry = ...; QuartzTelemetry quartzTelemetry = QuartzTelemetry.create(openTelemetry); Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler(); quartzTelemetry.configure(scheduler); scheduler.start(); // Schedule your jobs - they will now be traced with OpenTelemetry ``` -------------------------------- ### Logback XML Configuration Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/ecosystem-explorer/public/data/javaagent/markdown/logback-appender-1.0-875acf087a04.md Configure logback.xml to use the OpenTelemetryAppender alongside other appenders like the console appender. This setup forwards log events to both destinations. ```xml %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n ``` -------------------------------- ### Run Explorer Database Builder Tests Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/ecosystem-automation/explorer-db-builder/README.md This command executes the tests for the explorer-db-builder package, including coverage reporting. Run from the repository root. ```bash uv run pytest ecosystem-automation/explorer-db-builder/tests --cov=explorer_db_builder ``` -------------------------------- ### Responsive Spacing Example Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/ecosystem-explorer/DESIGN.md Demonstrates how to apply responsive spacing using Tailwind CSS classes. Use this for elements that should adjust their spacing based on viewport size. ```tsx
/* Grows with viewport */
/* More vertical space on larger screens */ ``` -------------------------------- ### Run Tests for a Specific Component Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/CONTRIBUTING.md Navigate to a component's directory and run its tests. ```bash # Run tests for a specific component cd ecosystem-automation/collector-watcher uv run pytest tests/ -v ``` -------------------------------- ### Data Fetching with Hooks Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/ecosystem-explorer/README.md Example of using custom React hooks to fetch version and instrumentation data. These hooks abstract data fetching logic and caching. ```tsx const versions = useVersions(); const instrumentations = useInstrumentations(version); ``` -------------------------------- ### Check Copyright Headers Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/CONTRIBUTING.md Verify that all files have the correct copyright headers. ```bash # Check copyright headers uv run python scripts/check_copyright.py ``` -------------------------------- ### Java Agent Instrumentation YAML File Format Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/docs/registry-structure.md Example of the YAML file format used for Java agent instrumentation, detailing metadata for a specific library. ```yaml file_format: 0.1 libraries: - name: activej-http-6.0 display_name: ActiveJ description: This instrumentation enables HTTP server spans and metrics... semantic_conventions: * HTTP_SERVER_SPANS * HTTP_SERVER_METRICS library_link: https://activej.io/ source_path: instrumentation/activej-http-6.0 minimum_java_version: 17 scope: name: io.opentelemetry.activej-http-6.0 schema_url: https://opentelemetry.io/schemas/1.37.0 target_versions: javaagent: * "io.activej:activej-http:[6.0,)" configurations: * name: otel.instrumentation.http.known-methods description: Configures the instrumentation to recognize... type: list default: CONNECT,DELETE,GET,HEAD,OPTIONS,PATCH,POST,PUT,TRACE telemetry: * when: default metrics: * name: http.server.request.duration description: Duration of HTTP server requests type: HISTOGRAM unit: s attributes: * name: http.request.method type: STRING * name: http.response.status_code type: LONG spans: * span_kind: SERVER attributes: * name: http.request.method type: STRING * name: http.response.status_code type: LONG * name: aws-sdk-2.2 display_name: AWS SDK 2.2 # ... (next instrumentation) # ... (continues for all ~232 instrumentations) ``` -------------------------------- ### Clean and Rebuild Explorer Database Source: https://github.com/open-telemetry/opentelemetry-ecosystem-explorer/blob/main/ecosystem-automation/explorer-db-builder/README.md Execute this command to perform a full rebuild of the database from scratch, discarding any existing content-addressed files. Run from the repository root. ```bash uv run explorer-db-builder --clean ```