From b6aafb47150c83e6c08a1071c2bff333509a8477 Mon Sep 17 00:00:00 2001 From: Victor Date: Fri, 15 Nov 2024 02:33:12 +0100 Subject: [PATCH] # --- .github/ISSUE_TEMPLATE/PAGE_FEEDBACK.yml | 27 ++ .github/PULL_REQUEST_TEMPLATE.md | 21 ++ .github/PULL_REQUEST_TEMPLATE/DOCS_UPDATE.md | 6 - .htmltest.yml | 32 +-- assets/js/registrySearch.js | 65 ++++- content/en/docs/collector/quick-start.md | 4 +- .../en/docs/kubernetes/operator/automatic.md | 31 ++- content/en/docs/languages/java/_index.md | 2 +- .../en/docs/languages/java/configuration.md | 34 +-- content/en/docs/languages/java/sdk.md | 52 ++-- content/en/docs/languages/python/exporters.md | 1 - content/en/docs/zero-code/python/operator.md | 4 + content/es/docs/_index.md | 7 - content/es/docs/concepts/components.md | 8 +- .../es/docs/concepts/context-propagation.md | 4 +- content/es/docs/kubernetes/getting-started.md | 4 + content/es/docs/what-is-opentelemetry.md | 2 +- content/ja/docs/_index.md | 10 - .../ja/docs/concepts/context-propagation.md | 4 +- content/ja/docs/concepts/sampling/index.md | 2 +- content/ja/docs/what-is-opentelemetry.md | 2 +- content/pt/docs/_index.md | 18 +- content/pt/docs/concepts/components.md | 2 +- .../pt/docs/concepts/context-propagation.md | 4 +- .../concepts/instrumentation/libraries.md | 11 +- content/pt/docs/concepts/sampling/index.md | 2 +- content/pt/docs/concepts/signals/traces.md | 2 +- content/pt/docs/languages/go/exporters.md | 263 ++++++++++++++++++ content/pt/docs/languages/go/libraries.md | 57 ++++ content/pt/docs/languages/go/registry.md | 10 + content/pt/docs/languages/go/resources.md | 57 ++++ content/pt/docs/languages/go/sampling.md | 48 ++++ content/pt/docs/what-is-opentelemetry.md | 2 +- data/registry-schema.json | 6 +- ...egration-go-traefik-hub-api-management.yml | 3 +- data/registry/exporter-dotnet-inmemory.yml | 2 +- .../exporter-dotnet-prometheus-aspnetcore.yml | 2 +- ...xporter-dotnet-prometheus-httplistener.yml | 2 +- .../exporter-js-sap-cloud-logging.yml | 2 +- data/registry/instrumentation-java-okhttp.yml | 5 + .../instrumentation-ruby-elasticsearch.yml | 2 +- .../partials/ecosystem/registry/entry.html | 35 ++- .../ecosystem/registry/quickinstall/maven.md | 21 ++ .../ecosystem/registry/search-form.html | 44 +++ scripts/check-i18n.sh | 2 +- scripts/content-modules/adjust-pages.pl | 12 +- static/refcache.json | 12 + 47 files changed, 771 insertions(+), 177 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/PAGE_FEEDBACK.yml create mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/PULL_REQUEST_TEMPLATE/DOCS_UPDATE.md create mode 100644 content/pt/docs/languages/go/exporters.md create mode 100644 content/pt/docs/languages/go/libraries.md create mode 100644 content/pt/docs/languages/go/registry.md create mode 100644 content/pt/docs/languages/go/resources.md create mode 100644 content/pt/docs/languages/go/sampling.md create mode 100644 layouts/partials/ecosystem/registry/quickinstall/maven.md diff --git a/.github/ISSUE_TEMPLATE/PAGE_FEEDBACK.yml b/.github/ISSUE_TEMPLATE/PAGE_FEEDBACK.yml new file mode 100644 index 000000000000..32ad4c4abaaf --- /dev/null +++ b/.github/ISSUE_TEMPLATE/PAGE_FEEDBACK.yml @@ -0,0 +1,27 @@ +name: Page Feedback +description: >- + Used for page feedback from users visiting opentelemetry.io and clicking "no" + if a page was helpful. +title: '[Page Feedback]: summary of your feedback' +body: + - type: input + id: url + attributes: + label: URL + description: >- + The URL of the webpage where you are facing an issue. If not + auto-populated, please copy the URL from the browser address bar. + placeholder: https://opentelemetry.io/ + validations: + required: true + - type: textarea + id: description + attributes: + label: Description + description: + 'How has the page not been helpful? What information is missing? ' + placeholder: >- + Provide details on the problem. The more information you share with us + the faster we can resolve the issue. + validations: + required: true diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 000000000000..63c825bee4f9 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,21 @@ + diff --git a/.github/PULL_REQUEST_TEMPLATE/DOCS_UPDATE.md b/.github/PULL_REQUEST_TEMPLATE/DOCS_UPDATE.md deleted file mode 100644 index 0fe4d48c2fb8..000000000000 --- a/.github/PULL_REQUEST_TEMPLATE/DOCS_UPDATE.md +++ /dev/null @@ -1,6 +0,0 @@ -## Docs PR Checklist - - - -- [ ] This PR is for a documentation page whose authoritative copy is in the - opentelemetry.io repository. diff --git a/.htmltest.yml b/.htmltest.yml index d2adbac45b64..dff29e7f9298 100644 --- a/.htmltest.yml +++ b/.htmltest.yml @@ -10,40 +10,9 @@ IgnoreDirs: # DO NOT EDIT! IgnoreDirs list is auto-generated from markdown file front matter. # Ignore blog index pages for all locales and in all blog sections (top-level and years) - ^(../)?blog/(\d+/)?page/\d+ - # TODO drop next lines after https://github.com/open-telemetry/opentelemetry.io/issues/5555 is fixed for these pages: - - ^es/docs/concepts/glossary/ - - ^es/docs/concepts/instrumentation/zero-code/ - - ^es/docs/concepts/signals/baggage/ - - ^es/docs/zero-code/php/ - # TODO drop next lines after https://github.com/open-telemetry/opentelemetry.io/issues/5555 is fixed for these pages: - - ^ja/docs/concepts/components/ - - ^ja/docs/concepts/glossary/ - - ^ja/docs/concepts/signals/baggage/ - - ^ja/docs/languages/erlang/sampling/ - - ^ja/docs/languages/js/sampling/ - - ^ja/docs/languages/ruby/sampling/ - - ^ja/docs/zero-code/php/ # TODO drop next line after https://github.com/open-telemetry/opentelemetry.io/issues/5423 is fixed for ja pages: - ^ja/docs/concepts/instrumentation/libraries/ # TODO drop next lines after https://github.com/open-telemetry/opentelemetry.io/issues/5555 is fixed for these pages: - - ^pt/docs/concepts/components/ - - ^pt/docs/concepts/glossary/ - - ^pt/docs/concepts/signals/baggage/ - - ^pt/docs/languages/erlang/instrumentation/ - - ^pt/docs/languages/erlang/sampling/ - - ^pt/docs/languages/js/instrumentation/ - - ^pt/docs/languages/js/sampling/ - - ^pt/docs/languages/net/instrumentation/ - - ^pt/docs/languages/net/libraries/ - - ^pt/docs/languages/net/shim/ - - ^pt/docs/languages/php/instrumentation/ - - ^pt/docs/languages/python/instrumentation/ - - ^pt/docs/languages/ruby/instrumentation/ - - ^pt/docs/languages/ruby/sampling/ - - ^pt/docs/zero-code/php/ - # TODO drop next line after https://github.com/open-telemetry/opentelemetry.io/issues/5423 is fixed for pt pages: - - ^pt/docs/concepts/instrumentation/libraries/ - # TODO drop next lines after https://github.com/open-telemetry/opentelemetry.io/issues/5555 is fixed for these pages: - ^zh/docs/concepts/signals/baggage/ - ^zh/docs/zero-code/php/ # DO NOT EDIT! IgnoreDirs list is auto-generated from markdown file front matter. @@ -81,6 +50,7 @@ IgnoreURLs: # list of regexs of paths or URLs to be ignored - ^https://www.farfetch.com - ^https://www.zocdoc.com - ^https://x.com + - ^https://maven.org # OTel Google calendar - curl returns 200, but the link checker gets a 401: - ^https://calendar.google.com/calendar/embed\?src=google.com_b79e3e90j7bbsa2n2p5an5lf60%40group.calendar.google.com # YouTube playlists sometimes give a 404, although they give a 200 when accessed via browser: diff --git a/assets/js/registrySearch.js b/assets/js/registrySearch.js index d91c590585a3..7673afafe855 100644 --- a/assets/js/registrySearch.js +++ b/assets/js/registrySearch.js @@ -38,6 +38,7 @@ let pathName = window.location.pathname; let searchQuery = ''; let selectedLanguage = 'all'; let selectedComponent = 'all'; +let selectedFlag = 'all'; // Added selectedFlag parseUrlParams(); @@ -49,7 +50,12 @@ if (pathName.includes('registry')) { showBody(); } - if (selectedLanguage !== 'all' || selectedComponent !== 'all') { + // Set the dropdown values from query params + if ( + selectedLanguage !== 'all' || + selectedComponent !== 'all' || + selectedFlag !== 'all' + ) { if (selectedLanguage !== 'all') { document.getElementById('languageDropdown').textContent = document.getElementById( @@ -62,6 +68,10 @@ if (pathName.includes('registry')) { `component-item-${selectedComponent}`, ).textContent; } + if (selectedFlag !== 'all') { + document.getElementById('flagsDropdown').textContent = + document.getElementById(`flag-item-${selectedFlag}`).textContent; + } updateFilters(); } @@ -106,6 +116,22 @@ if (pathName.includes('registry')) { updateFilters(); }), ); + // Flags dropdown event listener + + let flagList = document + .getElementById('flagsFilter') + .querySelectorAll('.dropdown-item'); + + flagList.forEach((element) => + element.addEventListener('click', function (evt) { + let val = evt.target.getAttribute('value'); + selectedFlag = val; + document.getElementById('flagsDropdown').textContent = + evt.target.textContent; + setInput('flag', val); + updateFilters(); + }), + ); }); } @@ -208,24 +234,39 @@ function setInput(key, value) { history.replaceState(null, null, '?' + queryParams.toString()); } -// Filters items based on language and component filters +// Filters items based on language, component and flags function updateFilters() { let allItems = [...document.getElementsByClassName('registry-entry')]; - if (selectedComponent === 'all' && selectedLanguage === 'all') { + if ( + selectedComponent === 'all' && + selectedLanguage === 'all' && + selectedFlag === 'all' + ) { + // Show all items if all filters are set to 'all' allItems.forEach((element) => element.classList.remove('d-none')); } else { + // Apply the filters allItems.forEach((element) => { const dc = element.dataset.registrytype; const dl = element.dataset.registrylanguage; - if ( - (dc === selectedComponent || selectedComponent === 'all') && - (dl === selectedLanguage || selectedLanguage === 'all') - ) { + const df = element.dataset.registryflags + ? element.dataset.registryflags.split(' ').map((f) => f.toLowerCase()) + : []; + + const componentMatches = + dc === selectedComponent || selectedComponent === 'all'; + const languageMatches = + dl === selectedLanguage || selectedLanguage === 'all'; + const flagMatches = + selectedFlag === 'all' || df.includes(selectedFlag.toLowerCase()); + + if (flagMatches) { + console.log('Flag matches:', df); + } + + if (componentMatches && languageMatches && flagMatches) { + // Changed element.classList.remove('d-none'); - } else if (dc === selectedComponent && dl !== selectedLanguage) { - element.classList.add('d-none'); - } else if (dl === selectedLanguage && dc !== selectedComponent) { - element.classList.add('d-none'); } else { element.classList.add('d-none'); } @@ -233,9 +274,11 @@ function updateFilters() { } } +// Parse URL parameters and update variables function parseUrlParams() { let urlParams = new URLSearchParams(window.location.search); searchQuery = urlParams.get('s'); selectedLanguage = urlParams.get('language') || 'all'; selectedComponent = urlParams.get('component') || 'all'; + selectedFlag = urlParams.get('flag') || 'all'; // Added } diff --git a/content/en/docs/collector/quick-start.md b/content/en/docs/collector/quick-start.md index 326f7c2b6f4f..d782ced91ca6 100644 --- a/content/en/docs/collector/quick-start.md +++ b/content/en/docs/collector/quick-start.md @@ -57,11 +57,13 @@ preferred shell. ## Generate and collect telemetry -3. Launch the Collector: +3. Launch the Collector, listening on ports 4317 (for OTLP gRPC), 4318 (for OTLP + HTTP) and 55679 (for ZPages): ```sh docker run \ -p 127.0.0.1:4317:4317 \ + -p 127.0.0.1:4318:4318 \ -p 127.0.0.1:55679:55679 \ otel/opentelemetry-collector-contrib:{{% param vers %}} \ 2>&1 | tee collector-output.txt # Optionally tee output for easier search later diff --git a/content/en/docs/kubernetes/operator/automatic.md b/content/en/docs/kubernetes/operator/automatic.md index 2435e060b81a..887273ba3e12 100644 --- a/content/en/docs/kubernetes/operator/automatic.md +++ b/content/en/docs/kubernetes/operator/automatic.md @@ -361,17 +361,16 @@ time). This means that the configured endpoint must be able to receive OTLP over will connect to the `http` port of the `otlpreceiver` of the Collector created in the previous step. -> As of operator v0.67.0, the Instrumentation resource automatically sets -> `OTEL_EXPORTER_OTLP_TRACES_PROTOCOL` and `OTEL_EXPORTER_OTLP_METRICS_PROTOCOL` -> to `http/protobuf` for Python services. If you use an older version of the -> Operator you **MUST** set these env variables to `http/protobuf`, or Python -> auto-instrumentation will not work. +> As of operator v0.108.0, the Instrumentation resource automatically sets +> `OTEL_EXPORTER_OTLP_PROTOCOL` to `http/protobuf` for Python services. If you +> use an older version of the Operator you **MUST** set this env variable to +> `http/protobuf`, or Python auto-instrumentation will not work. #### Auto-instrumenting Python logs By default, Python logs auto-instrumentation is disabled. If you would like to -enable this feature, you must to set the `OTEL_LOGS_EXPORTER` and -`OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED` environment variables as +enable this feature, you must to set +`OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED` environment variable as follows: ```yaml @@ -389,14 +388,12 @@ spec: - baggage python: env: - - name: OTEL_LOGS_EXPORTER - value: otlp_proto_http - name: OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED value: 'true' ``` -> Note that `OTEL_LOGS_EXPORTER` must be explicitly set to `otlp_proto_http`, -> otherwise it defaults to gRPC. +> As of operator v0.111.0 setting `OTEL_LOGS_EXPORTER` to `otlp` is not required +> anymore. #### Excluding auto-instrumentation {#python-excluding-auto-instrumentation} @@ -541,6 +538,18 @@ securityContext: runAsUser: 0 ``` +### Auto-instrumenting a Python musl based container {#annotations-python-musl} + +Since operator v0.113.0 Python auto-instrumentation also honors an annotation +that will permit it to run it on images with a different C library than glibc. + +```sh +# for Linux glibc based images, this is the default value and can be omitted +instrumentation.opentelemetry.io/otel-python-platform: "glibc" +# for Linux musl based images +instrumentation.opentelemetry.io/otel-python-platform: "musl" +``` + ## Troubleshooting If you run into problems trying to auto-instrument your code, here are a few diff --git a/content/en/docs/languages/java/_index.md b/content/en/docs/languages/java/_index.md index e2351e81c0b1..50d2da30240b 100644 --- a/content/en/docs/languages/java/_index.md +++ b/content/en/docs/languages/java/_index.md @@ -6,7 +6,7 @@ description: >- aliases: [/java, /java/metrics, /java/tracing] cascade: vers: - instrumentation: 2.9.0 + instrumentation: 2.10.0 otel: 1.44.1 contrib: 1.38.0 semconv: 1.28.0 diff --git a/content/en/docs/languages/java/configuration.md b/content/en/docs/languages/java/configuration.md index 5668297caa6d..86cdd3586895 100644 --- a/content/en/docs/languages/java/configuration.md +++ b/content/en/docs/languages/java/configuration.md @@ -141,13 +141,13 @@ returns a minimally configured instance (for example, Properties for configuring [resource](../sdk/#resource): -| System property | Description | Default | -| ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------- | ---------------------- | -| `otel.service.name` | Specify logical service name. Takes precedence over `service.name` defined with `otel.resource.attributes`. | `unknown_service:java` | -| `otel.resource.attributes` | Specify resource attributes in the following format: `key1=val1,key2=val2,key3=val3`. | | -| `otel.experimental.resource.disabled-keys` | Specify resource attribute keys to filter. This option is experimental and subject to change or removal. | | -| `otel.java.enabled.resource.providers` | Comma-separated list of `ResourceProvider` fully qualified class names to enable. **[1]** If unset, all resource providers are enabled. | | -| `otel.java.disabled.resource.providers` | Comma-separated list of `ResourceProvider` fully qualified class names to disable. **[1]** | | +| System property | Description | Default | +| --------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | ---------------------- | +| `otel.service.name` | Specify logical service name. Takes precedence over `service.name` defined with `otel.resource.attributes`. | `unknown_service:java` | +| `otel.resource.attributes` | Specify resource attributes in the following format: `key1=val1,key2=val2,key3=val3`. | | +| `otel.resource.disabled-keys` | Specify resource attribute keys to filter. | | +| `otel.java.enabled.resource.providers` | Comma-separated list of `ResourceProvider` fully qualified class names to enable. **[1]** If unset, all resource providers are enabled. | | +| `otel.java.disabled.resource.providers` | Comma-separated list of `ResourceProvider` fully qualified class names to disable. **[1]** | | **[1]**: For example, to disable the [OS resource provider](https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/instrumentation/resources/library/src/main/java/io/opentelemetry/instrumentation/resources/OsResourceProvider.java), @@ -260,12 +260,12 @@ exporters via `otel.logs.exporter`: Properties for setting exporters: -| System property | Purpose | Default | -| --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------- | -| `otel.traces.exporter` | Comma-separated list of span exporters. Known values include `otlp`, `zipkin`, `console`, `logging-otlp`, `none`. **[1]** | `otlp` | -| `otel.metrics.exporter` | Comma-separated list of metric exporters. Known values include `otlp`, `prometheus`, `none`. **[1]** | `otlp` | -| `otel.logs.exporter` | Comma-separated list of log record exporters. Known values include `otlp`, `console`, `logging-otlp`, `none`. **[1]** | `otlp` | -| `otel.java.experimental.exporter.memory_mode` | If `reusable_data`, enable reusable memory mode (on exporters which support it) to reduce allocations. Known values include `reusable_data`, `immutable_data`. This option is experimental and subject to change or removal. **[2]** | `immutable_data` | +| System property | Purpose | Default | +| -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------- | +| `otel.traces.exporter` | Comma-separated list of span exporters. Known values include `otlp`, `zipkin`, `console`, `logging-otlp`, `none`. **[1]** | `otlp` | +| `otel.metrics.exporter` | Comma-separated list of metric exporters. Known values include `otlp`, `prometheus`, `none`. **[1]** | `otlp` | +| `otel.logs.exporter` | Comma-separated list of log record exporters. Known values include `otlp`, `console`, `logging-otlp`, `none`. **[1]** | `otlp` | +| `otel.java.exporter.memory_mode` | If `reusable_data`, enable reusable memory mode (on exporters which support it) to reduce allocations. Known values include `reusable_data`, `immutable_data`. **[2]** | `reusable_data` | **[1]**: Known exporters and artifacts (see [span exporter](../sdk/#spanexporter), @@ -277,10 +277,12 @@ Properties for setting exporters: - `console` configures `LoggingSpanExporter`, `LoggingMetricExporter`, `SystemOutLogRecordExporter`. - `logging-otlp` configures `OtlpJsonLogging{Signal}Exporter`. +- `experimental-otlp/stdout` configures `OtlpStdout{Signal}Exporter` (this + option is experimental and subject to change or removal). **[2]**: Exporters which adhere to -`otel.java.experimental.exporter.memory_mode=reusable_data` are -`OtlpGrpc{Signal}Exporter`, `OtlpHttp{Signal}Exporter`, and +`otel.java.exporter.memory_mode=reusable_data` are `OtlpGrpc{Signal}Exporter`, +`OtlpHttp{Signal}Exporter`, `OtlpStdout{Signal}Exporter`, and `PrometheusHttpServer`. Properties for `otlp` span, metric, and log exporters: @@ -306,7 +308,7 @@ Properties for `otlp` span, metric, and log exporters: | `otel.exporter.otlp.{signal}.timeout` | The maximum waiting time, in milliseconds, allowed to send each OTLP {signal} batch. | `10000` | | `otel.exporter.otlp.metrics.temporality.preference` | The preferred output aggregation temporality. Options include `DELTA`, `LOWMEMORY`, and `CUMULATIVE`. If `CUMULATIVE`, all instruments will have cumulative temporality. If `DELTA`, counter (sync and async) and histograms will be delta, up down counters (sync and async) will be cumulative. If `LOWMEMORY`, sync counter and histograms will be delta, async counter and up down counters (sync and async) will be cumulative. | `CUMULATIVE` | | `otel.exporter.otlp.metrics.default.histogram.aggregation` | The preferred default histogram aggregation. Options include `BASE2_EXPONENTIAL_BUCKET_HISTOGRAM` and `EXPLICIT_BUCKET_HISTOGRAM`. | `EXPLICIT_BUCKET_HISTOGRAM` | -| `otel.experimental.exporter.otlp.retry.enabled` | If `true`, retry on when transient errors occur. **[2]** | `false` | +| `otel.java.exporter.otlp.retry.enabled` | If `true`, retry on when transient errors occur. **[2]** | `true` | **NOTE:** The text placeholder `{signal}` refers to the supported [OpenTelemetry Signal](/docs/concepts/signals/). Valid values include `traces`, diff --git a/content/en/docs/languages/java/sdk.md b/content/en/docs/languages/java/sdk.md index f2c58896dbce..63235139dc14 100644 --- a/content/en/docs/languages/java/sdk.md +++ b/content/en/docs/languages/java/sdk.md @@ -425,15 +425,16 @@ for exporting spans out of process. Rather than directly registering with Span exporters built-in to the SDK and maintained by the community in `opentelemetry-java-contrib`: -| Class | Artifact | Description | -| ------------------------------ | ---------------------------------------------------------------------------------------- | -------------------------------------------------------- | -| `OtlpHttpSpanExporter` **[1]** | `io.opentelemetry:opentelemetry-exporter-otlp:{{% param vers.otel %}}` | Exports spans via OTLP `http/protobuf`. | -| `OtlpGrpcSpanExporter` **[1]** | `io.opentelemetry:opentelemetry-exporter-otlp:{{% param vers.otel %}}` | Exports spans via OTLP `grpc`. | -| `LoggingSpanExporter` | `io.opentelemetry:opentelemetry-exporter-logging:{{% param vers.otel %}}` | Logs spans to JUL in a debugging format. | -| `OtlpJsonLoggingSpanExporter` | `io.opentelemetry:opentelemetry-exporter-logging-otlp:{{% param vers.otel %}}` | Logs spans to JUL in the OTLP JSON encoding. | -| `ZipkinSpanExporter` | `io.opentelemetry:opentelemetry-exporter-zipkin:{{% param vers.otel %}}` | Export spans to Zipkin. | -| `InterceptableSpanExporter` | `io.opentelemetry.contrib:opentelemetry-processors:{{% param vers.contrib %}}-alpha` | Passes spans to a flexible interceptor before exporting. | -| `KafkaSpanExporter` | `io.opentelemetry.contrib:opentelemetry-kafka-exporter:{{% param vers.contrib %}}-alpha` | Exports spans by writing to a Kafka topic. | +| Class | Artifact | Description | +| ------------------------------ | ---------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | +| `OtlpHttpSpanExporter` **[1]** | `io.opentelemetry:opentelemetry-exporter-otlp:{{% param vers.otel %}}` | Exports spans via OTLP `http/protobuf`. | +| `OtlpGrpcSpanExporter` **[1]** | `io.opentelemetry:opentelemetry-exporter-otlp:{{% param vers.otel %}}` | Exports spans via OTLP `grpc`. | +| `LoggingSpanExporter` | `io.opentelemetry:opentelemetry-exporter-logging:{{% param vers.otel %}}` | Logs spans to JUL in a debugging format. | +| `OtlpJsonLoggingSpanExporter` | `io.opentelemetry:opentelemetry-exporter-logging-otlp:{{% param vers.otel %}}` | Logs spans to JUL in an OTLP JSON encoding. | +| `OtlpStdoutSpanExporter` | `io.opentelemetry:opentelemetry-exporter-logging-otlp:{{% param vers.otel %}}` | Logs spans to `System.out` in the OTLP [JSON file encoding][] (experimental). | +| `ZipkinSpanExporter` | `io.opentelemetry:opentelemetry-exporter-zipkin:{{% param vers.otel %}}` | Export spans to Zipkin. | +| `InterceptableSpanExporter` | `io.opentelemetry.contrib:opentelemetry-processors:{{% param vers.contrib %}}-alpha` | Passes spans to a flexible interceptor before exporting. | +| `KafkaSpanExporter` | `io.opentelemetry.contrib:opentelemetry-kafka-exporter:{{% param vers.contrib %}}-alpha` | Exports spans by writing to a Kafka topic. | **[1]**: See [OTLP exporter sender](#otlp-exporter-senders) for implementation details. @@ -743,13 +744,14 @@ for exporting metrics out of process. Rather than directly registering with Metric exporters built-in to the SDK and maintained by the community in `opentelemetry-java-contrib`: -| Class | Artifact | Description | -| -------------------------------- | ------------------------------------------------------------------------------------ | ---------------------------------------------------------- | -| `OtlpHttpMetricExporter` **[1]** | `io.opentelemetry:opentelemetry-exporter-otlp:{{% param vers.otel %}}` | Exports metrics via OTLP `http/protobuf`. | -| `OtlpGrpcMetricExporter` **[1]** | `io.opentelemetry:opentelemetry-exporter-otlp:{{% param vers.otel %}}` | Exports metrics via OTLP `grpc`. | -| `LoggingMetricExporter` | `io.opentelemetry:opentelemetry-exporter-logging:{{% param vers.otel %}}` | Logs metrics to JUL in a debugging format. | -| `OtlpJsonLoggingMetricExporter` | `io.opentelemetry:opentelemetry-exporter-logging-otlp:{{% param vers.otel %}}` | Logs metrics to JUL in the OTLP JSON encoding. | -| `InterceptableMetricExporter` | `io.opentelemetry.contrib:opentelemetry-processors:{{% param vers.contrib %}}-alpha` | Passes metrics to a flexible interceptor before exporting. | +| Class | Artifact | Description | +| -------------------------------- | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------- | +| `OtlpHttpMetricExporter` **[1]** | `io.opentelemetry:opentelemetry-exporter-otlp:{{% param vers.otel %}}` | Exports metrics via OTLP `http/protobuf`. | +| `OtlpGrpcMetricExporter` **[1]** | `io.opentelemetry:opentelemetry-exporter-otlp:{{% param vers.otel %}}` | Exports metrics via OTLP `grpc`. | +| `LoggingMetricExporter` | `io.opentelemetry:opentelemetry-exporter-logging:{{% param vers.otel %}}` | Logs metrics to JUL in a debugging format. | +| `OtlpJsonLoggingMetricExporter` | `io.opentelemetry:opentelemetry-exporter-logging-otlp:{{% param vers.otel %}}` | Logs metrics to JUL in the OTLP JSON encoding. | +| `OtlpStdoutMetricExporter` | `io.opentelemetry:opentelemetry-exporter-logging-otlp:{{% param vers.otel %}}` | Logs metrics to `System.out` in the OTLP [JSON file encoding][] (experimental). | +| `InterceptableMetricExporter` | `io.opentelemetry.contrib:opentelemetry-processors:{{% param vers.contrib %}}-alpha` | Passes metrics to a flexible interceptor before exporting. | **[1]**: See [OTLP exporter sender](#otlp-exporter-senders) for implementation details. @@ -1063,13 +1065,14 @@ for exporting log records out of process. Rather than directly registering with Span exporters built-in to the SDK and maintained by the community in `opentelemetry-java-contrib`: -| Class | Artifact | Description | -| ------------------------------------------ | ------------------------------------------------------------------------------------ | -------------------------------------------------------------- | -| `OtlpHttpLogRecordExporter` **[1]** | `io.opentelemetry:opentelemetry-exporter-otlp:{{% param vers.otel %}}` | Exports log records via OTLP `http/protobuf`. | -| `OtlpGrpcLogRecordExporter` **[1]** | `io.opentelemetry:opentelemetry-exporter-otlp:{{% param vers.otel %}}` | Exports log records via OTLP `grpc`. | -| `SystemOutLogRecordExporter` | `io.opentelemetry:opentelemetry-exporter-logging:{{% param vers.otel %}}` | Logs log records to system out in a debugging format. | -| `OtlpJsonLoggingLogRecordExporter` **[2]** | `io.opentelemetry:opentelemetry-exporter-logging-otlp:{{% param vers.otel %}}` | Logs log records to JUL in the OTLP JSON encoding. | -| `InterceptableLogRecordExporter` | `io.opentelemetry.contrib:opentelemetry-processors:{{% param vers.contrib %}}-alpha` | Passes log records to a flexible interceptor before exporting. | +| Class | Artifact | Description | +| ------------------------------------------ | ------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------- | +| `OtlpHttpLogRecordExporter` **[1]** | `io.opentelemetry:opentelemetry-exporter-otlp:{{% param vers.otel %}}` | Exports log records via OTLP `http/protobuf`. | +| `OtlpGrpcLogRecordExporter` **[1]** | `io.opentelemetry:opentelemetry-exporter-otlp:{{% param vers.otel %}}` | Exports log records via OTLP `grpc`. | +| `SystemOutLogRecordExporter` | `io.opentelemetry:opentelemetry-exporter-logging:{{% param vers.otel %}}` | Logs log records to system out in a debugging format. | +| `OtlpJsonLoggingLogRecordExporter` **[2]** | `io.opentelemetry:opentelemetry-exporter-logging-otlp:{{% param vers.otel %}}` | Logs log records to JUL in the OTLP JSON encoding. | +| `OtlpStdoutLogRecordExporter` | `io.opentelemetry:opentelemetry-exporter-logging-otlp:{{% param vers.otel %}}` | Logs log records to `System.out` in the OTLP [JSON file encoding][] (experimental). | +| `InterceptableLogRecordExporter` | `io.opentelemetry.contrib:opentelemetry-processors:{{% param vers.contrib %}}-alpha` | Passes log records to a flexible interceptor before exporting. | **[1]**: See [OTLP exporter sender](#otlp-exporter-senders) for implementation details. @@ -1382,3 +1385,6 @@ you must also add a dependency on a ### Testing TODO: document tools available for testing the SDK + +[JSON file encoding]: + /docs/specs/otel/protocol/file-exporter/#json-file-serialization diff --git a/content/en/docs/languages/python/exporters.md b/content/en/docs/languages/python/exporters.md index c7bee4160084..c299c4465b88 100644 --- a/content/en/docs/languages/python/exporters.md +++ b/content/en/docs/languages/python/exporters.md @@ -213,7 +213,6 @@ from prometheus_client import start_http_server from opentelemetry import metrics from opentelemetry.exporter.prometheus import PrometheusMetricReader from opentelemetry.sdk.metrics import MeterProvider -from opentelemetry.sdk.metrics.export import PeriodicExportingMetricReader from opentelemetry.sdk.resources import SERVICE_NAME, Resource # Service name is required for most backends diff --git a/content/en/docs/zero-code/python/operator.md b/content/en/docs/zero-code/python/operator.md index 9f5e6761b6dd..de64a15ff232 100644 --- a/content/en/docs/zero-code/python/operator.md +++ b/content/en/docs/zero-code/python/operator.md @@ -28,6 +28,10 @@ provides images for a single Python version based on the glibc C library. If you want to use it you might need to build your own image operator Docker image for Python auto-instrumentation. +Since operator v0.113.0 it is possible to build an image with both glibc and +musl based auto-instrumentation and +[configure it at runtime](/docs/kubernetes/operator/automatic/#annotations-python-musl). + #### Django applications Applications that run from their own executable like Django requires to set in diff --git a/content/es/docs/_index.md b/content/es/docs/_index.md index 37bce30e49c5..15b4318af334 100644 --- a/content/es/docs/_index.md +++ b/content/es/docs/_index.md @@ -2,13 +2,6 @@ title: Documentación linkTitle: Docs menu: { main: { weight: 10 } } -htmltest: - IgnoreDirs: - # TODO drop next lines after https://github.com/open-telemetry/opentelemetry.io/issues/5555 is fixed for these pages: - - ^es/docs/concepts/glossary/ - - ^es/docs/concepts/instrumentation/zero-code/ - - ^es/docs/concepts/signals/baggage/ - - ^es/docs/zero-code/php/ default_lang_commit: f7cb8b65a478450d80d703b34c8473c579702108 --- diff --git a/content/es/docs/concepts/components.md b/content/es/docs/concepts/components.md index be665264af10..9a548119bfb6 100644 --- a/content/es/docs/concepts/components.md +++ b/content/es/docs/concepts/components.md @@ -8,11 +8,11 @@ default_lang_commit: 9b7da35fd7abd77d867177902b36d95e5f322182 OpenTelemetry está compuesto por varios componentes principales: -- [Especificación](#especificación) +- [Especificación](#specification) - [Collector](#collector) - [Implementaciones de API y SDK específicas del lenguaje](#implementaciones-de-api-y-sdk-específicas-del-lenguaje) - [Librerías de Instrumentación](#librerías-de-instrumentación) - - [Exportadores](#exportadores) + - [Exportadores](#exporters) - [Instrumentación sin código](#instrumentación-sin-código) - [Detectores de Recursos](#detectores-de-recursos) - [Propagadores entre servicios](#propagadores-entre-servicios) @@ -23,7 +23,7 @@ OpenTelemetry está compuesto por varios componentes principales: OpenTelemetry te permite reemplazar la necesidad de SDKs y herramientas específicas de proveedores para generar y exportar datos de telemetría. -## Especificación +## Especificación {#specification} Describe los requisitos y expectativas multilenguaje para todas las implementaciones. Más allá de la definición de términos, la especificación @@ -75,7 +75,7 @@ dependencias separadas. Para más información, consulta [Instrumentación de librerías](/docs/concepts/instrumentation/libraries/). -### Exportadores +### Exportadores {#exporters} {{% docs/languages/exporters/intro %}} diff --git a/content/es/docs/concepts/context-propagation.md b/content/es/docs/concepts/context-propagation.md index 57eca6c8f149..adcae7f5fdbc 100644 --- a/content/es/docs/concepts/context-propagation.md +++ b/content/es/docs/concepts/context-propagation.md @@ -15,7 +15,7 @@ límites de procesos y redes. Para entender la propagación de contexto, necesitas comprender dos conceptos separados: contexto y propagación. -## Contexto +## Contexto {#context} El contexto es un objeto que contiene la información para que el servicio emisor y receptor, o la @@ -28,7 +28,7 @@ creado en el servicio B. El ID de traza que está en el contexto también se usa para el siguiente span creado en el servicio B, lo que significa que el span es parte de la misma traza que el span del servicio A. -## Propagación +## Propagación {#propagation} La propagación es el mecanismo que mueve el contexto entre servicios y procesos. Serializa o deserializa el objeto de contexto y proporciona la información diff --git a/content/es/docs/kubernetes/getting-started.md b/content/es/docs/kubernetes/getting-started.md index 7f3aa0dbfec3..a8d15d83e3ba 100644 --- a/content/es/docs/kubernetes/getting-started.md +++ b/content/es/docs/kubernetes/getting-started.md @@ -90,7 +90,11 @@ Esta instancia del collector utilizará los siguientes componentes: - [Filelog Receiver](../collector/components/#filelog-receiver): para recopilar Registros de Kubernetes y registros de aplicaciones escritos en stdout/stderr. +<<<<<<< HEAD Veamos sus partes. +======= +Vamos a ver sus partes. +>>>>>>> 13e2b443a16f06d25a1f8500ec1b536d6261a78c ### Receptor OTLP diff --git a/content/es/docs/what-is-opentelemetry.md b/content/es/docs/what-is-opentelemetry.md index 7db506e0048a..ddc329ff450d 100644 --- a/content/es/docs/what-is-opentelemetry.md +++ b/content/es/docs/what-is-opentelemetry.md @@ -110,7 +110,7 @@ puede extender incluyen: Aunque la mayoría de los usuarios tal vez no necesiten extender OpenTelemetry, el proyecto está diseñado para hacerlo posible en casi todos los niveles. -## Historia +## Historia {#history} OpenTelemetry es un proyecto de [Cloud Native Computing Foundation (CNCF)](https://www.cncf.io) que es el diff --git a/content/ja/docs/_index.md b/content/ja/docs/_index.md index fb009395aeb8..76f868b6e3c5 100644 --- a/content/ja/docs/_index.md +++ b/content/ja/docs/_index.md @@ -1,16 +1,6 @@ --- title: ドキュメント menu: { main: { weight: 10 } } -htmltest: - IgnoreDirs: - # TODO drop next lines after https://github.com/open-telemetry/opentelemetry.io/issues/5555 is fixed for these pages: - - ^ja/docs/concepts/components/ - - ^ja/docs/concepts/glossary/ - - ^ja/docs/concepts/signals/baggage/ - - ^ja/docs/languages/erlang/sampling/ - - ^ja/docs/languages/js/sampling/ - - ^ja/docs/languages/ruby/sampling/ - - ^ja/docs/zero-code/php/ default_lang_commit: c2cd5b14 --- diff --git a/content/ja/docs/concepts/context-propagation.md b/content/ja/docs/concepts/context-propagation.md index 520a96e7526a..533112ba5e0f 100644 --- a/content/ja/docs/concepts/context-propagation.md +++ b/content/ja/docs/concepts/context-propagation.md @@ -10,14 +10,14 @@ default_lang_commit: 313e391 コンテキストの伝播を理解するには、コンテキストと伝搬(プロパゲーション)という、2つの別々の概念を理解する必要があります。 -## コンテキスト +## コンテキスト {#context} コンテキストは、送受信サービスまたは[実行ユニット](/docs/specs/otel/glossary/#execution-unit)が、あるシグナルと別のシグナルを関連付けるための情報を含むオブジェクトです。 たとえば、サービスAがサービスBを呼び出した場合、IDがコンテキスト内にあるサービスAのスパンは、サービスBで次に作成されるスパンの親スパンとして使用されます。 コンテキスト内にあるトレースIDは、サービスBで次に作成されるスパンにも使用されるため、そのスパンはサービスAのスパンと同じトレースの一部であることを意味します。 -## 伝搬(プロパゲーション) +## 伝搬(プロパゲーション) {#propagation} 伝搬は、サービスとプロセス間でコンテキストを移動させる仕組みです。 コンテキストオブジェクトをシリアライズまたはデシリアライズし、あるサービスから別のサービスに伝搬される関連情報を提供します。 diff --git a/content/ja/docs/concepts/sampling/index.md b/content/ja/docs/concepts/sampling/index.md index c66b3dd79a0d..b55c54361c7d 100644 --- a/content/ja/docs/concepts/sampling/index.md +++ b/content/ja/docs/concepts/sampling/index.md @@ -35,7 +35,7 @@ _適切なデータのサンプリングが必要なだけです。_ 誰かが「データをサンプリングアウトしている」と言ったり、処理またはエクスポートされていないデータは「サンプリングされた」と見なされると言ったりするのを見かけるかもしれません。 これらは間違った表現です。 -## ヘッドサンプリング +## ヘッドサンプリング {#head-sampling} ヘッドサンプリングは、サンプリングの決定をできるだけ早期に行うために用いられるサンプリング技術です。 スパンやトレースのサンプリングまたはドロップの決定は、トレース全体を検査することによって行われるわけではありません。 diff --git a/content/ja/docs/what-is-opentelemetry.md b/content/ja/docs/what-is-opentelemetry.md index 141a8a215f97..c226e1345429 100644 --- a/content/ja/docs/what-is-opentelemetry.md +++ b/content/ja/docs/what-is-opentelemetry.md @@ -66,7 +66,7 @@ OpenTelemetryは拡張できるように設計されています。どのよう ほとんどのユーザーはOpenTelemetryを拡張する必要はないかもしれませんが、このプロジェクトはほぼすべてのレベルで拡張できるように設計されています。 -## 歴史 +## 歴史 {#history} OpenTelemetryは、[Cloud Native Computing Foundation (CNCF)](https://www.cncf.io)プロジェクトであり、[OpenTracing](https://opentracing.io)と[OpenCensus](https://opencensus.io)の2つのプロジェクトが統合された成果物です。 これらのプロジェクトはどちらも、コードを計装し、オブザーバビリティバックエンドにテレメトリーデータを送信する方法の標準がないという問題を解決するために作られました。 diff --git a/content/pt/docs/_index.md b/content/pt/docs/_index.md index eb6bd6fcf8c7..0eb159f5fe93 100644 --- a/content/pt/docs/_index.md +++ b/content/pt/docs/_index.md @@ -3,23 +3,7 @@ title: Documentação linkTitle: Docs menu: { main: { weight: 10 } } htmltest: - IgnoreDirs: - # TODO drop next lines after https://github.com/open-telemetry/opentelemetry.io/issues/5555 is fixed for these pages: - - ^pt/docs/concepts/components/ - - ^pt/docs/concepts/glossary/ - - ^pt/docs/concepts/signals/baggage/ - - ^pt/docs/languages/erlang/instrumentation/ - - ^pt/docs/languages/erlang/sampling/ - - ^pt/docs/languages/js/instrumentation/ - - ^pt/docs/languages/js/sampling/ - - ^pt/docs/languages/net/instrumentation/ - - ^pt/docs/languages/net/libraries/ - - ^pt/docs/languages/net/shim/ - - ^pt/docs/languages/php/instrumentation/ - - ^pt/docs/languages/python/instrumentation/ - - ^pt/docs/languages/ruby/instrumentation/ - - ^pt/docs/languages/ruby/sampling/ - - ^pt/docs/zero-code/php/ + IgnoreDirs: {} default_lang_commit: 2d88c10e1a14220a88a6e4859acb4047f49b6519 --- diff --git a/content/pt/docs/concepts/components.md b/content/pt/docs/concepts/components.md index b7a74b6823b0..4d7e8ef256ee 100644 --- a/content/pt/docs/concepts/components.md +++ b/content/pt/docs/concepts/components.md @@ -73,7 +73,7 @@ necessárias. Para mais informações, consulte [Bibliotecas de instrumentação](/docs/concepts/instrumentation/libraries/). -### Exporters +### Exporters {#exporters} {{% docs/languages/exporters/intro %}} diff --git a/content/pt/docs/concepts/context-propagation.md b/content/pt/docs/concepts/context-propagation.md index ce75b853cd86..a3ce5eeeb224 100644 --- a/content/pt/docs/concepts/context-propagation.md +++ b/content/pt/docs/concepts/context-propagation.md @@ -15,7 +15,7 @@ sistema que é distribuído arbitrariamente entre processos e limites de rede. Para compreender a propagação de contexto, você precisa entender dois conceitos distintos: contexto e propagação. -## Contexto +## Contexto {#context} O contexto é um objeto que contém as informações necessárias para que o serviço emissor e receptor, ou @@ -28,7 +28,7 @@ serviço B. O ID do rasto que está no contexto também será usado para o próx trecho criado no serviço B, o que significa que o trecho faz parte do mesmo rastro que o trecho do serviço A. -## Propagação +## Propagação {#propagation} Propagação é o mecanismo que move o contexto entre serviços e processos. Ele serializa ou desserializa o objeto de contexto e fornece as informações diff --git a/content/pt/docs/concepts/instrumentation/libraries.md b/content/pt/docs/concepts/instrumentation/libraries.md index f9dd1e39938d..b33f1af65a18 100644 --- a/content/pt/docs/concepts/instrumentation/libraries.md +++ b/content/pt/docs/concepts/instrumentation/libraries.md @@ -2,11 +2,7 @@ title: Bibliotecas description: Aprenda como adicionar instrumentação nativa à sua biblioteca. weight: 40 -default_lang_commit: a570a00c7a238ffe26528d7bfb20efdbaf939c39 -htmltest: - IgnoreDirs: - # TODO drop next line after https://github.com/open-telemetry/opentelemetry.io/issues/5423 is fixed for pt pages: - - ^pt/docs/concepts/instrumentation/libraries/ +default_lang_commit: a570a00c7a238ffe26528d7bfb20efdbaf939c39 # + link-fix patch --- O OpenTelemetry fornece [bibliotecas de instrumentação][] para várias @@ -314,9 +310,8 @@ Aqui estão os consulte a documentação do OpenTelemetry no seu idioma. No caso de um sistema de mensagens, você pode receber mais de uma mensagem de -uma vez. As mensagens recebidas se tornam -[_links_](/docs/languages/java/instrumentation/#create-spans-with-links) no -trecho que você cria. Consulte as +uma vez. As mensagens recebidas se tornam _links_ no trecho que você cria. +Consulte as [convenções de mensagens](/docs/specs/semconv/messaging/messaging-spans/) para mais detalhes (AVISO: as convenções de mensagens estão [em construção](https://github.com/open-telemetry/oteps/pull/173) 🚧). diff --git a/content/pt/docs/concepts/sampling/index.md b/content/pt/docs/concepts/sampling/index.md index 27caec960d79..3288147887ca 100644 --- a/content/pt/docs/concepts/sampling/index.md +++ b/content/pt/docs/concepts/sampling/index.md @@ -103,7 +103,7 @@ fornecedor ou com recursos computacionais em hospedagem própria, dependendo do seu _backend_ de observabilidade, da natureza dos seus dados e das suas tentativas de realizar amostragem de forma eficaz. -## Amostragem pela Cabeça +## Amostragem pela Cabeça {#head-sampling} A amostragem pela cabeça (_head sampling_) é uma técnica de amostragem usada para tomar uma decisão de amostragem o mais cedo possível. A decisão de amostrar diff --git a/content/pt/docs/concepts/signals/traces.md b/content/pt/docs/concepts/signals/traces.md index d8d3271b6b44..f96ad916dd5e 100644 --- a/content/pt/docs/concepts/signals/traces.md +++ b/content/pt/docs/concepts/signals/traces.md @@ -136,7 +136,7 @@ Para compreender como o rastreamento no OpenTelemetry funciona, vamos analisar uma lista de componentes que terão um papel fundamental na instrumentação do nosso código. -## Trace Provider +## Trace Provider {#tracer-provider} Um Trace Provider (às vezes chamado de `TracerProvider`) é uma fábrica de `rastros`. Na maioria das aplicações, um Trace Provider é inicializado uma vez e diff --git a/content/pt/docs/languages/go/exporters.md b/content/pt/docs/languages/go/exporters.md new file mode 100644 index 000000000000..5393d851d0a6 --- /dev/null +++ b/content/pt/docs/languages/go/exporters.md @@ -0,0 +1,263 @@ +--- +title: Exporters +aliases: [exporting_data] +weight: 50 +default_lang_commit: 5e2a0b43c1f9f42824a024206e797cf7041ed9db +# prettier-ignore +cSpell:ignore: otlplog otlploggrpc otlploghttp otlpmetric otlpmetricgrpc otlpmetrichttp otlptrace otlptracegrpc otlptracehttp promhttp stdoutlog stdouttrace +--- + +{{% docs/languages/exporters/intro go %}} + +## Console + +O exportador do console é útil para tarefas de desenvolvimento e depuração, e é +o mais simples de configurar. + +### Rastros no Console {#console-traces} + +O pacote +[`go.opentelemetry.io/otel/exporters/stdout/stdouttrace`](https://pkg.go.dev/go.opentelemetry.io/otel/exporters/stdout/stdouttrace) +possui uma implementação do Exporter de Rastros para o console. + +Por exemplo, aqui está como é possível criar um Exporter com as configurações +padrão: + +```go +import ( + "go.opentelemetry.io/otel/exporters/stdout/stdouttrace" + "go.opentelemetry.io/otel/sdk/trace" +) + +func newExporter() (trace.SpanExporter, error) { + return stdouttrace.New() +} +``` + +### Métricas no Console {#console-metrics} + +O pacote +[`go.opentelemetry.io/otel/exporters/stdout/stdoutmetric`](https://pkg.go.dev/go.opentelemetry.io/otel/exporters/stdout/stdoutmetric) +possui uma implementação do Exporter de Métricas para o console. + +Por exemplo, aqui está como é possível criar um Exporter com as configurações +padrão: + +```go +import ( + "go.opentelemetry.io/otel/exporters/stdout/stdoutmetric" + "go.opentelemetry.io/otel/sdk/metric" +) + +func newExporter() (metric.Exporter, error) { + return stdoutmetric.New() +} +``` + +### Logs no Console (Experimental) {#console-logs} + +O pacote +[`go.opentelemetry.io/otel/exporters/stdout/stdoutlog`](https://pkg.go.dev/go.opentelemetry.io/otel/exporters/stdout/stdoutlog) +possui uma implementação do Exporter de Logs para o console. + +Por exemplo, aqui está como é possível criar um Exporter com as configurações +padrão: + +```go +import ( + "go.opentelemetry.io/otel/exporters/stdout/stdoutlog" + "go.opentelemetry.io/otel/sdk/log" +) + +func newExporter() (log.Exporter, error) { + return stdoutlog.New() +} +``` + +## OTLP + +Para enviar dados de rastreamento para um endpoint OTLP (como o +[collector](/docs/collector) ou Jaeger >= v1.35.0), você precisará configurar um +Exporter OTLP que envie os dados para o seu endpoint. + +### Rastros OTLP via HTTP {#otlp-traces-over-http} + +O pacote +[`go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp`](https://pkg.go.dev/go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp) +possui uma implementação do Exporter de Rastros OTLP utilizando o protocolo HTTP +com payloads binários protobuf. + +Por exemplo, aqui está como é possível criar um Exporter com as configurações +padrão: + +```go +import ( + "context" + + "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp" + "go.opentelemetry.io/otel/sdk/trace" +) + +func newExporter(ctx context.Context) (trace.SpanExporter, error) { + return otlptracehttp.New(ctx) +} +``` + +### Rastros OTLP via gRPC {#otlp-traces-over-grpc} + +O pacote +[`go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc`](https://pkg.go.dev/go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc) +possui uma implementação do Exporter de Rastros OTLP utilizando o protocolo +gRPC. + +Por exemplo, aqui está como é possível criar um Exporter com as configurações +padrão: + +```go +import ( + "context" + + "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc" + "go.opentelemetry.io/otel/sdk/trace" +) + +func newExporter(ctx context.Context) (trace.SpanExporter, error) { + return otlptracegrpc.New(ctx) +} +``` + +### Jaeger + +Para testar o exportador OTLP, a partir da versão v1.35.0 você pode executar o +[Jaeger](https://www.jaegertracing.io/) como um endpoint OTLP e visualizar os +rastros em um contêiner Docker: + +```shell +docker run -d --name jaeger \ + -e COLLECTOR_OTLP_ENABLED=true \ + -p 16686:16686 \ + -p 4317:4317 \ + -p 4318:4318 \ + jaegertracing/all-in-one:latest +``` + +### Métricas OTLP via HTTP {#otlp-metrics-over-http} + +O pacote +[`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`](https://pkg.go.dev/go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp) +possui uma implementação do Exporter de Métricas OTLP utilizando o protocolo +HTTP com payloads binários protobuf. + +Por exemplo, aqui está como é possível criar um Exporter com as configurações +padrão: + +```go +import ( + "context" + + "go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp" + "go.opentelemetry.io/otel/sdk/metric" +) + +func newExporter(ctx context.Context) (metric.Exporter, error) { + return otlpmetrichttp.New(ctx) +} +``` + +### Métricas OTLP via gRPC {#otlp-metrics-over-grpc} + +O pacote +[`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc`](https://pkg.go.dev/go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc) +possui uma implementação do Exporter de Métricas OTLP utilizando o protocolo +gRPC. + +Por exemplo, aqui está como é possível criar um Exporter com as configurações +padrão: + +```go +import ( + "context" + + "go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc" + "go.opentelemetry.io/otel/sdk/metric" +) + +func newExporter(ctx context.Context) (metric.Exporter, error) { + return otlpmetricgrpc.New(ctx) +} +``` + +## Prometheus (Experimental) + +O Exporter do Prometheus é utilizado para reportar métricas através do +_scraping_ realizado pelo Prometheus em um endpoint HTTP. + +O pacote +[`go.opentelemetry.io/otel/exporters/prometheus`](https://pkg.go.dev/go.opentelemetry.io/otel/exporters/prometheus) +possui uma implementação do Exporter de Métricas do Prometheus. + +Por exemplo, aqui está como é possível criar um Exporter (que também é um leitor +de métricas) com as configurações padrão: + +```go +import ( + "context" + + "go.opentelemetry.io/otel/exporters/prometheus" + "go.opentelemetry.io/otel/sdk/metric" +) + +func newExporter(ctx context.Context) (metric.Reader, error) { + // prometheus.DefaultRegisterer é utilizado por padrão, de modo que + // as métricas fiquem disponíveis via promhttp.Handler. + return prometheus.New() +} +``` + +Para saber mais sobre como usar o Exporter do Prometheus, veja o +[exemplo do prometheus](https://github.com/open-telemetry/opentelemetry-go-contrib/tree/main/examples/prometheus) + +### Logs OTLP via HTTP (Experimental) {#otlp-logs-over-http-experimental} + +O pacote +[`go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp`](https://pkg.go.dev/go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp) +possui uma implementação do Exporter de Logs OTLP utilizando o protocolo HTTP +com payloads binários protobuf. + +Por exemplo, aqui está como é possível criar um Exporter com as configurações +padrão: + +```go +import ( + "context" + + "go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp" + "go.opentelemetry.io/otel/sdk/log" +) + +func newExporter(ctx context.Context) (log.Exporter, error) { + return otlploghttp.New(ctx) +} +``` + +### Logs OTLP via gRPC (Experimental) {#otlp-logs-over-grpc-experimental} + +O pacote +[`go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc`](https://pkg.go.dev/go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc) +possui uma implementação do Exporter de Logs OTLP utilizando o protocolo gRPC. + +Por exemplo, aqui está como é possível criar um Exporter com as configurações +padrão: + +```go +import ( + "context" + + "go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc" + "go.opentelemetry.io/otel/sdk/log" +) + +func newExporter(ctx context.Context) (log.Exporter, error) { + return otlploggrpc.New(ctx) +} +``` diff --git a/content/pt/docs/languages/go/libraries.md b/content/pt/docs/languages/go/libraries.md new file mode 100644 index 000000000000..c1e9f9ab0618 --- /dev/null +++ b/content/pt/docs/languages/go/libraries.md @@ -0,0 +1,57 @@ +--- +title: Utilizando bibliotecas de instrumentação +linkTitle: Bibliotecas +aliases: + - /docs/languages/go/using_instrumentation_libraries + - /docs/languages/go/automatic_instrumentation +weight: 40 +default_lang_commit: 825010e3cfece195ae4dfd019eff080ef8eb6365 +--- + +{{% docs/languages/libraries-intro "go" %}} + +## Utilizando bibliotecas de instrumentação {#use-instrumentation-libraries} + +Caso uma biblioteca não venha com o OpenTelemetry, você pode utilizar uma +[biblioteca de instrumentação](/docs/specs/otel/glossary/#instrumentation-library) +para gerar dados de telemetria para uma biblioteca ou framework. + +Por exemplo, a +[biblioteca de instrumentação para `net/http`](https://pkg.go.dev/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp) +cria automaticamente [trechos](/docs/concepts/signals/traces/#spans) e +[métricas](/docs/concepts/signals/metrics/) com base nas requisições HTTP. + +## Configuração {#setup} + +Cada biblioteca de instrumentação é um pacote. Em geral, isso significa que você +precisa usar `go get` para obter o pacote apropriado. Por exemplo, para obter as +bibliotecas de instrumentação mantidas no +[repositório Contrib](https://github.com/open-telemetry/opentelemetry-go-contrib), +execute o seguinte comando: + +```sh +go get go.opentelemetry.io/contrib/instrumentation/{caminho-de-importacao}/otel{nome-do-pacote} +``` + +Em seguida, configure o seu código com base no que a biblioteca requer para ser +ativada. + +Em [Primeiros Passos](../getting-started/) fornecemos um exemplo mostrando como +configurar a instrumentação para um servidor `net/http`. + +## Pacotes disponíveis {#available-packages} + +Uma lista completa de bibliotecas de instrumentação disponíveis pode ser +encontrada no +[registro do OpenTelemetry](/ecosystem/registry/?language=go&component=instrumentation). + +## Próximos passos {#next-steps} + +As bibliotecas de instrumentação podem gerar dados de telemetria para +requisições HTTP de entrada e saída, mas não instrumentam sua aplicação +completamente. + +Enriqueça seus dados de telemetria realizando uma +[instrumentação personalizada](../instrumentation/) em seu código. Isso +complementa a telemetria da biblioteca padrão e pode oferecer dados mais +profundos sobre sua aplicação em execução. diff --git a/content/pt/docs/languages/go/registry.md b/content/pt/docs/languages/go/registry.md new file mode 100644 index 000000000000..0f29dab6a4a8 --- /dev/null +++ b/content/pt/docs/languages/go/registry.md @@ -0,0 +1,10 @@ +--- +title: Registro +description: + Bibliotecas de instrumentação, Exporters e outros componentes úteis para o + OpenTelemetry Go +redirect: /ecosystem/registry/?language=go +_build: { render: link } +weight: 300 +default_lang_commit: 1e0c316e3bdac625edc51f0a5037bff6e4611b65 +--- diff --git a/content/pt/docs/languages/go/resources.md b/content/pt/docs/languages/go/resources.md new file mode 100644 index 000000000000..b11b5479e759 --- /dev/null +++ b/content/pt/docs/languages/go/resources.md @@ -0,0 +1,57 @@ +--- +title: Recursos +weight: 70 +cSpell:ignore: sdktrace thirdparty +default_lang_commit: 12f31f62fcc466532513f6ebccb060c9ea5b9fe4 +--- + +{{% docs/languages/resources-intro %}} + +Recursos devem ser adicionados a um `TracerProvider`, `MeterProvider` e +`LoggerProvider` durante a sua inicialização, e são criados de maneira +semelhante aos atributos: + +```go +res := resource.NewWithAttributes( + semconv.SchemaURL, + semconv.ServiceNameKey.String("meuServico"), + semconv.ServiceVersionKey.String("1.0.0"), + semconv.ServiceInstanceIDKey.String("abcdef12345"), +) + +provider := sdktrace.NewTracerProvider( + ... + sdktrace.WithResource(res), +) +``` + +Observe o uso do pacote `semconv` para fornecer +[nomes convencionais](/docs/concepts/semantic-conventions/) para os atributos do +recurso. Isso ajuda a garantir que os consumidores da telemetria produzida +utilizando as convenções semânticas possam identificar facilmente os atributos +relevantes e entender seu significado. + +Os recursos também podem ser detectados automaticamente por meio das +implementações de `resource.Detector`. Esses `Detector`s podem descobrir +informações sobre o processo em execução, o sistema operacional em que ele está +sendo executado, o provedor de nuvem que hospeda a instância do sistema +operacional ou qualquer número de outros atributos de recurso. + +```go +res, err := resource.New( + context.Background(), + resource.WithFromEnv(), // Descobre e fornece atributos das variáveis de ambiente OTEL_RESOURCE_ATTRIBUTES e OTEL_SERVICE_NAME. + resource.WithTelemetrySDK(), // Descobre e fornece informações sobre o SDK do OpenTelemetry que está sendo utilizado. + resource.WithProcess(), // Descobre e fornece informações do processo. + resource.WithOS(), // Descobre e fornece informações do Sistema Operacional. + resource.WithContainer(), // Descobre e fornece informações do contêiner. + resource.WithHost(), // Descobre e fornece informações da hospedagem. + resource.WithAttributes(attribute.String("foo", "bar")), // Adicionar atributos de recurso personalizados. + // resource.WithDetectors(thirdparty.Detector{}), // Inclua a sua própria implementação externa do Detector. +) +if errors.Is(err, resource.ErrPartialResource) || errors.Is(err, resource.ErrSchemaURLConflict) { + log.Println(err) // Registre problemas não-fatais. +} else if err != nil { + log.Fatalln(err) // O erro pode ser fatal. +} +``` diff --git a/content/pt/docs/languages/go/sampling.md b/content/pt/docs/languages/go/sampling.md new file mode 100644 index 000000000000..08c861274862 --- /dev/null +++ b/content/pt/docs/languages/go/sampling.md @@ -0,0 +1,48 @@ +--- +title: Amostragem +weight: 80 +default_lang_commit: 06837fe15457a584f6a9e09579be0f0400593d57 +--- + +A [Amostragem](/docs/concepts/sampling/) é um processo que restringe a +quantidade de trechos gerados por um sistema. A configuração de amostragem exata +que você deve usar depende das suas necessidades específicas, mas, em geral, +você deve tomar uma decisão no início de um rastro e permitir que a decisão de +amostragem se propague para outros serviços. + +Um [`Sampler`](https://pkg.go.dev/go.opentelemetry.io/otel/sdk/trace#Sampler) +pode ser definido no `TracerProvider` utilizando o método +[`WithSampler`](https://pkg.go.dev/go.opentelemetry.io/otel/sdk/trace#WithSampler), +conforme o exemplo a seguir: + +```go +provider := trace.NewTracerProvider( + trace.WithSampler(trace.AlwaysSample()), +) +``` + +[`AlwaysSample`](https://pkg.go.dev/go.opentelemetry.io/otel/sdk/trace#AlwaysSample) +e +[`NeverSample`](https://pkg.go.dev/go.opentelemetry.io/otel/sdk/trace#NeverSample) +são valores autoexplicativos. `AlwaysSample` significa que cada trecho será +amostrado, enquanto `NeverSample` significa que nenhum trecho será amostrado. Ao +iniciar um projeto, ou em ambiente de desenvolvimento, utilize `AlwaysSample`. + +Outros amostradores disponíveis são: + +- [`TraceIDRatioBased`](https://pkg.go.dev/go.opentelemetry.io/otel/sdk/trace#TraceIDRatioBased), + que amostra uma fração dos trechos, com base na fração fornecida ao + amostrador. Caso esta fração seja .5, metade de todos os trechos serão + amostrados. +- [`ParentBased`](https://pkg.go.dev/go.opentelemetry.io/otel/sdk/trace#ParentBased), + é um decorador de amostrador que se comporta de maneira diferente, com base no + parente do trecho. Caso o trecho não possua um parente, o amostrador decorado + é usado para tomar a decisão de amostragem com base no parente do trecho. Por + padrão, `ParentBased` amostra trechos que possuem parentes que foram + amostrados e não amostra trechos cujos parentes não foram amostrados. + +Por padrão, o Tracer Provider utiliza o amostrador `ParentBased` com o +amostrador `AlwaysSample` + +Caso esteja em um ambiente de produção, considere utilizar o amostrador +`ParentBased` com o amostrador `TraceIDRatioBased`. diff --git a/content/pt/docs/what-is-opentelemetry.md b/content/pt/docs/what-is-opentelemetry.md index dbc5ca01c050..c70ca4ef35db 100644 --- a/content/pt/docs/what-is-opentelemetry.md +++ b/content/pt/docs/what-is-opentelemetry.md @@ -108,7 +108,7 @@ pode ser estendido incluem: Embora a maioria dos usuários possa não precisar estender o OpenTelemetry, o projeto é projetado para tornar isso possível em quase todos os níveis. -## História +## História {#history} O OpenTelemetry é um projeto da [Cloud Native Computing Foundation (CNCF)](https://www.cncf.io) que é resultado diff --git a/data/registry-schema.json b/data/registry-schema.json index edbedd799c81..c605d190742c 100644 --- a/data/registry-schema.json +++ b/data/registry-schema.json @@ -109,9 +109,9 @@ }, "url": { "type": "string", - "description": "The URL of the author", - "pattern": "^https:\\/\\/github\\.com\\/([a-zA-Z0-9](?:-?[a-zA-Z0-9]){0,38})$", - "errorMessage": "The URL of the author must be a valid GitHub user URL" + "description": "The URL of the author. This can be a website or a GitHub handle URL.", + "format": "uri", + "pattern": "^https://.*$" } }, "if": { diff --git a/data/registry/application-integration-go-traefik-hub-api-management.yml b/data/registry/application-integration-go-traefik-hub-api-management.yml index 8eec96632b80..4ffe278c3f46 100644 --- a/data/registry/application-integration-go-traefik-hub-api-management.yml +++ b/data/registry/application-integration-go-traefik-hub-api-management.yml @@ -13,8 +13,9 @@ description: behavior. authors: - name: Traefik Labs + url: https://github.com/immanuelfodor urls: website: https://traefik.io/traefik-hub/ docs: https://doc.traefik.io/traefik-hub/operations/metrics -createdAt: '2024-08-06' +createdAt: 2024-08-06 isNative: true diff --git a/data/registry/exporter-dotnet-inmemory.yml b/data/registry/exporter-dotnet-inmemory.yml index 07cf5e6fc115..91eb8e6e5575 100644 --- a/data/registry/exporter-dotnet-inmemory.yml +++ b/data/registry/exporter-dotnet-inmemory.yml @@ -17,4 +17,4 @@ createdAt: 2022-11-07 package: registry: nuget name: OpenTelemetry.Exporter.InMemory - version: 1.10.0-rc.1 + version: 1.10.0 diff --git a/data/registry/exporter-dotnet-prometheus-aspnetcore.yml b/data/registry/exporter-dotnet-prometheus-aspnetcore.yml index ff19ad374680..5c3978f479e1 100644 --- a/data/registry/exporter-dotnet-prometheus-aspnetcore.yml +++ b/data/registry/exporter-dotnet-prometheus-aspnetcore.yml @@ -20,4 +20,4 @@ createdAt: 2022-11-07 package: registry: nuget name: OpenTelemetry.Exporter.Prometheus.AspNetCore - version: 1.9.0-beta.2 + version: 1.10.0-beta.1 diff --git a/data/registry/exporter-dotnet-prometheus-httplistener.yml b/data/registry/exporter-dotnet-prometheus-httplistener.yml index b53f88e6e3d4..3e0316a0479f 100644 --- a/data/registry/exporter-dotnet-prometheus-httplistener.yml +++ b/data/registry/exporter-dotnet-prometheus-httplistener.yml @@ -18,4 +18,4 @@ createdAt: 2022-11-07 package: registry: nuget name: OpenTelemetry.Exporter.Prometheus.HttpListener - version: 1.9.0-beta.2 + version: 1.10.0-beta.1 diff --git a/data/registry/exporter-js-sap-cloud-logging.yml b/data/registry/exporter-js-sap-cloud-logging.yml index aca044a763b5..bfaf2ca56339 100644 --- a/data/registry/exporter-js-sap-cloud-logging.yml +++ b/data/registry/exporter-js-sap-cloud-logging.yml @@ -23,4 +23,4 @@ isFirstParty: false package: registry: npm name: '@sap/opentelemetry-exporter-for-sap-cloud-logging' - version: 0.1.1 + version: 0.2.0 diff --git a/data/registry/instrumentation-java-okhttp.yml b/data/registry/instrumentation-java-okhttp.yml index dae54020d6cc..789dc0973ca7 100644 --- a/data/registry/instrumentation-java-okhttp.yml +++ b/data/registry/instrumentation-java-okhttp.yml @@ -1,3 +1,4 @@ +# cspell:ignore okhttp title: okHTTP Instrumentation registryType: instrumentation language: java @@ -13,4 +14,8 @@ authors: urls: repo: https://github.com/open-telemetry/opentelemetry-java-instrumentation/tree/main/instrumentation/okhttp createdAt: 2020-11-05 +package: + registry: maven + name: io.opentelemetry.instrumentation/opentelemetry-okhttp-3.0 + version: 2.9.0-alpha isFirstParty: false diff --git a/data/registry/instrumentation-ruby-elasticsearch.yml b/data/registry/instrumentation-ruby-elasticsearch.yml index 0c6f37f2d837..fa866d0c4b85 100644 --- a/data/registry/instrumentation-ruby-elasticsearch.yml +++ b/data/registry/instrumentation-ruby-elasticsearch.yml @@ -20,4 +20,4 @@ isNative: true package: registry: gems name: elasticsearch - version: 8.15.0 + version: 8.16.0 diff --git a/layouts/partials/ecosystem/registry/entry.html b/layouts/partials/ecosystem/registry/entry.html index 9a282c4db0b9..27b17cc83014 100644 --- a/layouts/partials/ecosystem/registry/entry.html +++ b/layouts/partials/ecosystem/registry/entry.html @@ -46,6 +46,10 @@ "installLine" "cargo add %s" "installTemplate" "ecosystem/registry/quickinstall/default.md" "icon" "fab fa-rust") + "maven" (dict + "urlPattern" "https://maven.org/artifact/%s" + "installTemplate" "ecosystem/registry/quickinstall/maven.md" + "icon" "fa-solid fa-feather") -}} {{ $isNative := and (or (eq .registryType "instrumentation") (eq .registryType "application integration")) (.isNative) }} @@ -85,7 +89,23 @@ {{ errorf "The %q registry entry requires a repo or website URL." .title }} {{ end -}} {{ $primaryHref := printf "href=%q" $primaryUrl | safeHTMLAttr -}} -
  • + {{ $flags := slice -}} + {{ if $isNew -}} + {{ $flags = $flags | append "new" -}} + {{ end -}} + {{ if $isNative -}} + {{ $flags = $flags | append "native" -}} + {{ end -}} + {{ if $isFirstParty -}} + {{ $flags = $flags | append "first_party" -}} + {{ end -}} + {{ if $usedInDemo -}} + {{ $flags = $flags | append "used_in_demo" -}} + {{ end -}} + {{ if $deprecated -}} + {{ $flags = $flags | append "deprecated" -}} + {{ end -}} +
  • + + + + {{ with $package -}} {{ if not (eq .quickInstall false) }}
    Quick Install
    diff --git a/layouts/partials/ecosystem/registry/quickinstall/maven.md b/layouts/partials/ecosystem/registry/quickinstall/maven.md new file mode 100644 index 000000000000..b7dfc26f20b7 --- /dev/null +++ b/layouts/partials/ecosystem/registry/quickinstall/maven.md @@ -0,0 +1,21 @@ +##### Maven + +Add the following dependency in your `pom.xml` file to install this package. + +```xml + + {{ index (split .name "/") 0 }} + {{ index (split .name "/") 1 }} + {{ .version }} + +``` + +##### Gradle + +Add the following dependency in your `build.gradle` file to install this package: + +```groovy +dependencies { + implementation '{{ index (split .name "/") 0 }}:{{ index (split .name "/") 1 }}:{{ .version }}' +} +``` \ No newline at end of file diff --git a/layouts/shortcodes/ecosystem/registry/search-form.html b/layouts/shortcodes/ecosystem/registry/search-form.html index 4e2fc00028c1..4ed992793e72 100644 --- a/layouts/shortcodes/ecosystem/registry/search-form.html +++ b/layouts/shortcodes/ecosystem/registry/search-form.html @@ -34,6 +34,38 @@ {{ end -}} {{ $types = $types | uniq | sort -}} +{{ $counter := 0 -}} +{{ $entries := slice -}} +{{ range $key, $entry := .Site.Data.registry -}} + {{ $flags := slice -}} + {{ if .isNative -}} + {{ $flags = $flags | append "native" -}} + {{ end -}} + {{ if .isFirstParty -}} + {{ $flags = $flags | append "first_party" -}} + {{ end -}} + {{ if .isNew -}} + {{ $flags = $flags | append "new" -}} + {{ end -}} + {{ if .usedInDemo -}} + {{ $flags = $flags | append "used_in_demo" -}} + {{ end -}} + {{ if .deprecated -}} + {{ $flags = $flags | append "deprecated" -}} + {{ end -}} + {{ $entry = merge $entry (dict "_key" $key "id" $counter "flags" $flags) -}} + {{ $entries = $entries | append $entry -}} + {{ $counter = add $counter 1 }} +{{ end -}} + +{{ $allFlags := slice -}} +{{ range $entry := $entries -}} + {{ range $flag := $entry.flags -}} + {{ $allFlags = $allFlags | append $flag }} + {{ end -}} +{{ end -}} +{{ $uniqueFlags := $allFlags | uniq | sort }} +
    The OpenTelemetry Registry allows you to search for instrumentation libraries, collector components, utilities, and other useful projects in the OpenTelemetry @@ -51,6 +83,8 @@ + + @@ -88,6 +122,16 @@ {{ end -}}
    + + + + diff --git a/scripts/check-i18n.sh b/scripts/check-i18n.sh index df729741a05b..00cbe4fddda6 100755 --- a/scripts/check-i18n.sh +++ b/scripts/check-i18n.sh @@ -250,7 +250,7 @@ function main() { for f in $TARGETS; do ((FILE_COUNT++)) - LASTCOMMIT_FF=$(perl -ne "print \"\$1\" if /^$I18N_DLC_KEY:\\s*(.*)/" "$f") + LASTCOMMIT_FF=$(perl -ne "print \"\$1\" if /^$I18N_DLC_KEY:\\s*([a-f0-9]+)/i" "$f") LASTCOMMIT="$LASTCOMMIT_FF" if [[ $LIST_KIND == "ALL" && -n $COMMIT_HASH_ARG ]]; then diff --git a/scripts/content-modules/adjust-pages.pl b/scripts/content-modules/adjust-pages.pl index edc02477ec56..7c554dce2b0a 100755 --- a/scripts/content-modules/adjust-pages.pl +++ b/scripts/content-modules/adjust-pages.pl @@ -25,7 +25,7 @@ my $otelSpecVers = $versions{'spec:'}; my $otlpSpecVers = $versions{'otlp:'}; my $semconvVers = $versions{'semconv:'}; -my $warn2 = 0; # TODO remove along with warning 002 +my $patchMsg2 = 0; # TODO remove along with patch-message 002 sub printTitleAndFrontMatter() { print "---\n"; @@ -46,7 +46,7 @@ () } elsif ($ARGV =~ /otel\/specification\/logs\/api.md$/) { if ($otelSpecVers ne "1.39.0") { # TODO: delete the enclosing elsif body - print STDOUT "WARNING [001]: $0: remove obsolete code now that OTel spec has been updated.\n" + print STDOUT "INFO [001]: $0: remove obsolete code now that OTel spec has been updated.\n" } $frontMatterFromFile .= "linkTitle: API\naliases: [bridge-api]\n"; } @@ -116,13 +116,13 @@ () # SPECIFICATION custom processing - # TODO: drop the entire if-then-else statement patch code when OTel spec vers contains + # TODO: drop the entire if statement patch code when OTel spec vers contains # https://github.com/open-telemetry/opentelemetry-specification/pull/4287, # which should be vers > 1.39.0. - if ($otelSpecVers eq "1.39.0") { + if ($ARGV =~ /otel\/spec/) { s|(/api\.md)#logs-api\b|$1|g; - } elsif ($ARGV =~ /otel\/spec/) { - print STDOUT "WARNING [002]: $0: remove obsolete code now that OTel spec has been updated.\n" unless $warn2++ + print STDOUT "INFO [002]: $0: remove obsolete patch code now that OTel spec has been updated.\n" + if $otelSpecVers ne "1.39.0" && !$patchMsg2++ } s|\(https://github.com/open-telemetry/opentelemetry-specification\)|($specBasePath/otel/)|; diff --git a/static/refcache.json b/static/refcache.json index 30cb7c919941..765546941467 100644 --- a/static/refcache.json +++ b/static/refcache.json @@ -5255,6 +5255,10 @@ "StatusCode": 200, "LastSeen": "2024-01-18T19:13:40.755331-05:00" }, + "https://github.com/immanuelfodor": { + "StatusCode": 200, + "LastSeen": "2024-11-13T13:16:21.346606655Z" + }, "https://github.com/instana/go-otel-exporter": { "StatusCode": 200, "LastSeen": "2024-01-18T19:10:14.475135-05:00" @@ -11739,6 +11743,10 @@ "StatusCode": 200, "LastSeen": "2024-01-30T05:18:35.161372-05:00" }, + "https://repo1.maven.org/maven2/io/opentelemetry/instrumentation/opentelemetry-instrumentation-bom-alpha/2.10.0-alpha/opentelemetry-instrumentation-bom-alpha-2.10.0-alpha.pom": { + "StatusCode": 206, + "LastSeen": "2024-11-13T10:47:55.011955709Z" + }, "https://repo1.maven.org/maven2/io/opentelemetry/instrumentation/opentelemetry-instrumentation-bom-alpha/2.7.0-alpha/opentelemetry-instrumentation-bom-alpha-2.7.0-alpha.pom": { "StatusCode": 206, "LastSeen": "2024-10-23T20:20:08.34491-05:00" @@ -11747,6 +11755,10 @@ "StatusCode": 206, "LastSeen": "2024-10-23T20:19:21.596018-05:00" }, + "https://repo1.maven.org/maven2/io/opentelemetry/instrumentation/opentelemetry-instrumentation-bom/2.10.0/opentelemetry-instrumentation-bom-2.10.0.pom": { + "StatusCode": 206, + "LastSeen": "2024-11-13T10:47:53.144495226Z" + }, "https://repo1.maven.org/maven2/io/opentelemetry/instrumentation/opentelemetry-instrumentation-bom/2.7.0/opentelemetry-instrumentation-bom-2.7.0.pom": { "StatusCode": 206, "LastSeen": "2024-10-23T20:20:07.402964-05:00"