diff --git a/content/en/blog/2024/go-opentelemetry-io.md b/content/en/blog/2024/go-opentelemetry-io.md new file mode 100644 index 000000000000..cd92d5ea63de --- /dev/null +++ b/content/en/blog/2024/go-opentelemetry-io.md @@ -0,0 +1,83 @@ +--- +title: Planned Migration for go.opentelemetry.io +date: 2024-08-27 +author: '[Mike Dame](https://github.com/damemi) (Google)' +body_class: otel-with-contributions-from +issue: 5086 +sig: Go SIG +cSpell:ignore: vanityurls Yahn +--- + +With contributions from Tyler Yahn and Austin Parker. + +## TL;DR + +The app that serves requests to [go.opentelemetry.io] will be migrating to a new +host on September 5, 2024 at approximately 11:00AM Eastern Time. **There are no +changes required from you**. We are making this announcement because it is +possible, but unlikely, that there might be downtime during this transition. + +## Details + +OpenTelemetry is planning to migrate the application that serves all requests +for `go.opentelemetry.io` to a new host project on September 5, 2024. On this +date, the current DNS entries for `go.opentelemetry.io` will be updated to point +to the new host. + +This should be a seamless transition, but there is the possibility of downtime +during this time. The OpenTelemetry engineers will be actively monitoring the +transition to minimize the risk. + +### Affected resources + +In the unlikely event of issues, the scope of these planned changes will affect +Go package downloads for the following domains: + +- `go.opentelemetry.io/auto` +- `go.opentelemetry.io/build-tools` +- `go.opentelemetry.io/collector-contrib` +- `go.opentelemetry.io/collector` +- `go.opentelemetry.io/contrib` +- `go.opentelemetry.io/otel` +- `go.opentelemetry.io/proto` + +Note that this includes users of any of the following artifacts: + +- OpenTelemetry Go language libraries (including Contrib) +- OpenTelemetry Go Auto-Instrumentation libraries +- OpenTelemetry Collector libraries (including Contrib) +- OpenTelemetry Collector Builder. + +## What you need to do + +**There is no action required from you.** All imports using +`go.opentelemetry.io` (and submodule paths, for example +`go.opentelemetry.io/otel`) will continue to work. There are no plans to change +this. + +## What you might notice + +There is the possibility of the [go.opentelemetry.io] domain experiencing +downtime during this transition. If this happens, you might see projects that +import `go.opentelemetry.io` modules failing to compile. + +This could occur due to several factors, including delays in DNS propagation or +misconfiguration. We will have multiple maintainers working synchronously during +this time to minimize any downtime that occurs. + +If you experience any issues following this transition, please reach out on +[Slack #otel-go](https://cloud-native.slack.com/archives/C01NPAXACKT) or +[create an issue](https://github.com/open-telemetry/opentelemetry-go-vanityurls/issues/new) +over +[opentelemetry-go-vanityurls](https://github.com/open-telemetry/opentelemetry-go-vanityurls). + +## Why are we making this change? + +This transition both helps modernize the application serving requests and +handles an ownership transfer, ensuring that we are able to continue providing +OpenTelemetry Go packages in a secure and robust manner. + +For more details, see +[the community GitHub issue proposing this change](https://github.com/open-telemetry/community/issues/2260). + +[go.opentelemetry.io]: https://go.opentelemetry.io diff --git a/content/en/docs/collector/_index.md b/content/en/docs/collector/_index.md index e4f945d5183b..141b6485ab9a 100644 --- a/content/en/docs/collector/_index.md +++ b/content/en/docs/collector/_index.md @@ -3,7 +3,7 @@ title: Collector description: Vendor-agnostic way to receive, process and export telemetry data. aliases: [collector/about] cascade: - vers: 0.107.0 + vers: 0.108.0 weight: 270 --- diff --git a/content/en/docs/languages/go/exporters.md b/content/en/docs/languages/go/exporters.md index 2dfeb0e60937..1bf33529e974 100644 --- a/content/en/docs/languages/go/exporters.md +++ b/content/en/docs/languages/go/exporters.md @@ -3,7 +3,7 @@ title: Exporters aliases: [exporting_data] weight: 50 # prettier-ignore -cSpell:ignore: otlplog otlploghttp otlpmetric otlpmetricgrpc otlpmetrichttp otlptrace otlptracegrpc otlptracehttp promhttp stdoutlog stdouttrace +cSpell:ignore: otlplog otlploggrpc otlploghttp otlpmetric otlpmetricgrpc otlpmetrichttp otlptrace otlptracegrpc otlptracehttp promhttp stdoutlog stdouttrace --- {{% docs/languages/exporters/intro go %}} @@ -86,6 +86,8 @@ Here's how you can create an exporter with default configuration: ```go import ( + "context" + "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp" "go.opentelemetry.io/otel/sdk/trace" ) @@ -104,6 +106,8 @@ Here's how you can create an exporter with default configuration: ```go import ( + "context" + "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc" "go.opentelemetry.io/otel/sdk/trace" ) @@ -138,6 +142,8 @@ Here's how you can create an exporter with default configuration: ```go import ( + "context" + "go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp" "go.opentelemetry.io/otel/sdk/metric" ) @@ -156,6 +162,8 @@ Here's how you can create an exporter with default configuration: ```go import ( + "context" + "go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc" "go.opentelemetry.io/otel/sdk/metric" ) @@ -178,6 +186,8 @@ default configuration: ```go import ( + "context" + "go.opentelemetry.io/otel/exporters/prometheus" "go.opentelemetry.io/otel/sdk/metric" ) @@ -202,6 +212,8 @@ Here's how you can create an exporter with default configuration: ```go import ( + "context" + "go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp" "go.opentelemetry.io/otel/sdk/log" ) @@ -210,3 +222,23 @@ func newExporter(ctx context.Context) (log.Exporter, error) { return otlploghttp.New(ctx) } ``` + +### OTLP logs over gRPC (Experimental) + +[`go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc`](https://pkg.go.dev/go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc) +contains an implementation of OTLP logs exporter using gRPC. + +Here's how you can create an exporter with default configuration: + +```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/en/ecosystem/integrations.md b/content/en/ecosystem/integrations.md index 168aa8d34a45..198331d3c318 100644 --- a/content/en/ecosystem/integrations.md +++ b/content/en/ecosystem/integrations.md @@ -14,7 +14,7 @@ While external instrumentation through and [instrumentation libraries](/docs/specs/otel/overview/#instrumentation-libraries) provide a convenient way to make your application observable, we believe that -ultimately all applications should either integrated the OpenTelemetry APIs and +ultimately all applications should either integrate the OpenTelemetry APIs and SDKs directly for native telemetry, or provide a first-party plugin that fits into the ecosystem of the given software. diff --git a/content/es/docs/concepts/_index.md b/content/es/docs/concepts/_index.md new file mode 100644 index 000000000000..37f583c87efe --- /dev/null +++ b/content/es/docs/concepts/_index.md @@ -0,0 +1,11 @@ +--- +title: Conceptos de OpenTelemetry +linkTitle: Conceptos +description: Conceptos principales en OpenTelemetry +weight: 170 +default_lang_commit: d638c386ae327328ff35604df54fa6ddd8b51b65 +--- + +Esta sección describe las fuentes de datos y los componentes principales del +proyecto OpenTelemetry, lo que puede ayudarte a comprender cómo funciona +OpenTelemetry. diff --git a/content/es/docs/contributing/_index.md b/content/es/docs/contributing/_index.md new file mode 100644 index 000000000000..c9c32dc312b1 --- /dev/null +++ b/content/es/docs/contributing/_index.md @@ -0,0 +1,30 @@ +--- +title: Contribuir +description: Aprende cómo contribuir a la documentación de OpenTelemetry. +weight: 980 +default_lang_commit: 30783526402b69a3ac44eeb0f6cf066732f0bdca +--- + +Quienes colaboran para documentar OpenTelemetry: + +- Mejoran el contenido existente. +- Crean contenido nuevo. +- Actualizan el Registro de OpenTelemetry. +- Mejoran el código que construye el sitio. + +Las siguientes guías describen cómo contribuir a la documentación de +OpenTelemetry. + +Para obtener orientación sobre cómo contribuir al proyecto OpenTelemetry en +general, consulta la +[Guía del contribuyente de OpenTelemetry](https://github.com/open-telemetry/community/blob/main/guides/contributor/README.md), +que proporciona detalles sobre el Acuerdo de Licencia del Contribuyente y el +Código de Conducta. Cada implementación de lenguaje, el Collector y las +convenciones en el [repositorio](https://github.com/open-telemetry/) tiene sus +propias guías específicas para contribuir. + +## Otras formas de contribuir + +- Visita el [sitio de la comunidad de OpenTelemetry](/community/). +- Añade tu aplicación al [Registro](/ecosystem). +- Envía un [blog o caso de estudio](/docs/contributing/blog/). diff --git a/content/es/docs/getting-started/_index.md b/content/es/docs/getting-started/_index.md new file mode 100644 index 000000000000..2cd70313a831 --- /dev/null +++ b/content/es/docs/getting-started/_index.md @@ -0,0 +1,31 @@ +--- +title: Primeros pasos +description: Comienza con OpenTelemetry según tu rol. +no_list: true +default_lang_commit: e7a62891accc831de331336c8d10245969276112 +weight: 160 +--- + +Selecciona un rol[^1] para comenzar: + +
+ +- [Dev](dev/) +- [Ops](ops/) + +
+ +También puedes probar la [demo oficial de OpenTelemetry][demo] para ver cómo es +la observabilidad con OpenTelemetry. + +
+ +- [Prueba la demostración][demo] + +
+ +[^1]: Si ninguno de estos roles se aplica a tu caso, [abre un tique][]. + +[demo]: /ecosystem/demo/ +[abre un tique]: + https://github.com/open-telemetry/opentelemetry.io/issues/new?title=Add%20a%20new%20persona:%20My%20Persona&body=Provide%20a%20description%20of%20your%20role%20and%20responsibilities%20and%20what%20your%20observability%20goals%20are diff --git a/content/es/docs/kubernetes/_index.md b/content/es/docs/kubernetes/_index.md new file mode 100644 index 000000000000..68624ff84df6 --- /dev/null +++ b/content/es/docs/kubernetes/_index.md @@ -0,0 +1,16 @@ +--- +title: OpenTelemetry con Kubernetes +linkTitle: Kubernetes +weight: 350 +description: Usando OpenTelemetry con Kubernetes +default_lang_commit: d638c386ae327328ff35604df54fa6ddd8b51b65 +--- + +## Introducción + +[Kubernetes](https://kubernetes.io/) es un sistema de código abierto para +automatizar la implementación, el escalado y la gestión de aplicaciones en +contenedores. Se ha convertido en una herramienta industrial ampliamente +adoptada, lo que genera una mayor necesidad de herramientas de observabilidad. +En respuesta, OpenTelemetry ha creado muchas herramientas diferentes para ayudar +a los usuarios de Kubernetes a observar sus clústeres y servicios. diff --git a/content/pt/announcements/_index.md b/content/pt/announcements/_index.md new file mode 100644 index 000000000000..158dddc7f353 --- /dev/null +++ b/content/pt/announcements/_index.md @@ -0,0 +1,6 @@ +--- +title: Anúncios +cascade: + type: docs +default_lang_commit: 48eac183a4dd74946d5a45fa436cfc6052f30532 +--- diff --git a/content/pt/announcements/otel-localized.md b/content/pt/announcements/otel-localized.md new file mode 100644 index 000000000000..56dc40fc3d93 --- /dev/null +++ b/content/pt/announcements/otel-localized.md @@ -0,0 +1,10 @@ +--- +title: Site do OpenTelemetry com suporte a múltiplas linguas! +date: 2024-08-21 +expiryDate: 2024-09-30 +weight: -240821 # top +default_lang_commit: 48eac183a4dd74946d5a45fa436cfc6052f30532 +--- + + {{% param title %}} +[Saiba mais](/blog/2024/docs-localized/) diff --git a/content/pt/blog/2024/_index.md b/content/pt/blog/2024/_index.md new file mode 100644 index 000000000000..830390104ca3 --- /dev/null +++ b/content/pt/blog/2024/_index.md @@ -0,0 +1,6 @@ +--- +title: 2024 +weight: -2024 +outputs: [HTML, RSS] +default_lang_commit: 48eac183a4dd74946d5a45fa436cfc6052f30532 +--- diff --git a/content/pt/blog/2024/docs-localized.md b/content/pt/blog/2024/docs-localized.md new file mode 100644 index 000000000000..0b28d92e90cb --- /dev/null +++ b/content/pt/blog/2024/docs-localized.md @@ -0,0 +1,38 @@ +--- +title: Site do OpenTelemetry com suporte a múltiplos idiomas! +linkTitle: Site multilíngue +date: 2024-08-10 +author: >- + [Severin Neumann](https://github.com/svrnm) (Cisco) +issue: 4863 +sig: Comms +default_lang_commit: 48eac183a4dd74946d5a45fa436cfc6052f30532 +--- + +É com grande prazer que anunciamos que o site do OpenTelemetry está disponível +em múltiplos idiomas! Os times de localização já começaram a traduzir páginas do +site para [Chinês](/zh), [Japonês](/ja), [Português](/pt) e [Espanhol](/es). + +O projeto OpenTelemetry cresceu para incluir pessoas que contribuem e o utilizam +em todas as partes do mundo. Disponibilizar o site em múltiplos idiomas é um +passo importante para garantir que todos, independente da sua língua nativa, +consigam contribuir para o projeto. Nós também estamos empolgados que essa +iniciativa permite que usuários acessem a documentações em diversas linguagens, +facilitando o aprendizado e o entendimento do OpenTelemetry. + +Para acessar o site na língua de sua preferência, utilize o seletor de idioma no +canto superior direito da página. + +Venha contribuir para essa iniciativa. Você pode encontrar colegas que +contribuem para localização no canal do Slack +[#otel-docs-localization](https://cloud-native.slack.com/archives/C076RUAGP37). +Se você é fluente em um idioma que já é suportado, você pode ajudar criando ou +revisando traduções. Se seu idioma ainda não é suportado e você gostaria de +ajudar a traduzir, +[crie uma issue](). + +Suas contribuições podem gerar um impacto significativo! + +Nós agradecemos todas as pessoas que contribuíram para tornar isso uma +realidade, e estamos ansiosos para ver como essas novas opções de idioma podem +melhorar a experiência de usuário do OpenTelemetry. diff --git a/content/pt/blog/_index.md b/content/pt/blog/_index.md new file mode 100644 index 000000000000..ecb9876dab1d --- /dev/null +++ b/content/pt/blog/_index.md @@ -0,0 +1,8 @@ +--- +title: Blog +menu: + main: { weight: 50 } +redirects: [{ from: '', to: '2024/ 301!' }] +outputs: [HTML, RSS] +default_lang_commit: 48eac183a4dd74946d5a45fa436cfc6052f30532 +--- diff --git a/content/pt/docs/concepts/instrumentation/code-based.md b/content/pt/docs/concepts/instrumentation/code-based.md new file mode 100644 index 000000000000..997ec126abeb --- /dev/null +++ b/content/pt/docs/concepts/instrumentation/code-based.md @@ -0,0 +1,71 @@ +--- +title: Manual +description: >- + Aprenda as etapas essenciais na configuração da instrumentação manual +weight: 20 +default_lang_commit: fe0c3f68902aeb6e7584ffc32c6c8964d7a89e6e +--- + +## Importe a API e o SDK do OpenTelemetry + +Primeiro, você precisará importar o OpenTelemetry para o seu código. Se estiver +desenvolvendo uma biblioteca ou algum outro componente que se destina a ser +consumido por um binário executável, você só dependeria da API. Se o seu +artefato for um processo ou serviço independente, então você dependeria da API e +do SDK. Para obter mais informações sobre a API e o SDK do OpenTelemetry, +consulte a [especificação](/docs/specs/otel/). + +## Configure a API do OpenTelemetry + +Para criar rastros ou métricas, primeiro você precisa criar um _provider_ do +tipo _tracer_ e/ou _meter_. Geralmente, recomendamos que o SDK forneça um único +provider padrão para esses objetos. Em seguida, você obtém uma instância +_tracer_ ou _meter_ desse _provider_ e atribui a ela um nome e uma versão. O +nome que você escolher aqui deve identificar exatamente o que está sendo +instrumentado - se você está desenvolvendo uma biblioteca, por exemplo, você +deve nomeá-la com o nome da sua biblioteca (por exemplo +`com.example.myLibrary`), pois esse nome será usado como _namespace_ em todos os +eventos de trecho ou métricas que forem produzidos. Além disso, é recomendável +fornecer uma _string_ de versão (ou seja, `semver:1.0.0`) que corresponda à +versão atual da sua biblioteca ou serviço. + +## Configure o SDK do OpenTelemetry + +Se você está desenvolvendo um serviço, também precisará configurar o SDK com as +opções adequadas para exportar seus dados de telemetria para um _backend_ de +análise. Recomendamos que esta configuração seja feita programaticamente por +meio de um arquivo de configuração ou outro mecanismo. Além disso, existem +opções de ajuste específicas para cada linguagem de programação que você pode +utilizar. + +## Crie dados de telemetria + +Depois de configurar a API e o SDK, você estará pronto para criar eventos de +rastros e métricas usando os objetos _tracer_ e _meter_ obtidos do _provider_. +Utilize bibliotecas de instrumentação para suas dependências -- confira o +[OpenTelemetry Registry](/ecosystem/registry/) ou o repositório da sua linguagem +de programação para mais informações sobre essas bibliotecas. + +## Exporte dados + +Depois de criar os dados de telemetria, você vai querer enviá-los para algum +lugar. O OpenTelemetry oferece suporte a dois métodos principais de exportação +de dados do seu processo para um _backend_ de análise: diretamente da sua +aplicação ou por meio de um proxy através do +[OpenTelemetry Collector](/docs/collector). + +A exportação a partir da sua aplicação exige que você importe e dependa de um ou +mais _exporters_, bibliotecas responsáveis por traduzir os objetos de trechos e +métricas em memória do OpenTelemetry para o formato apropriado para ferramentas +de análise de telemetria, como Jaeger ou Prometheus. Além disso, o OpenTelemetry +suporta um protocolo conhecido como `OTLP`, que é compatível com todos os SDKs +do OpenTelemetry. Esse protocolo pode ser utilizado para enviar dados ao +OpenTelemetry Collector, um processo binário que pode ser executado como +_proxy_, _sidecar_ ou em um _host_ separado. O Collector pode então ser +configurado para encaminhar e exportar esses dados para ferramentas de análise +de sua escolha. + +Além das ferramentas _open source_ como Jaeger ou Prometheus, uma lista +crescente de empresas oferece suporte para ingestão de dados de telemetria do +OpenTelemetry. Para mais detalhes, consulte os +[Fornecedores](/ecosystem/vendors/). diff --git a/content/pt/docs/concepts/semantic-conventions.md b/content/pt/docs/concepts/semantic-conventions.md new file mode 100644 index 000000000000..596df2000920 --- /dev/null +++ b/content/pt/docs/concepts/semantic-conventions.md @@ -0,0 +1,22 @@ +--- +title: Convenção Semântica +description: Nomes comuns para diferentes tipos de operações e dados. +weight: 30 +default_lang_commit: 9c679ccf62092a34847a01cf97ba0f92847021c0 +--- + +O OpenTelemetry define [Convenção Semântica](/docs/specs/semconv/), algumas +vezes + +chamado de atributos semânticos, que especificam nomes comuns para diferentes +tipos de operações e dados. O benefício de usar convenções semânticas é seguir +um padrão de nomenclatura comum que pode ser padronizado em uma base de código, +bibliotecas e plataformas. + +Convenções Semânticas estão disponíveis para rastros, métricas, logs e +resources: + +- [Convenção Semântica de rastro](/docs/specs/semconv/general/trace/) +- [Convenção Semântica de métrica](/docs/specs/semconv/general/metrics/) +- [Convenção Semântica de log](/docs/specs/semconv/general/logs/) +- [Convenção Semântica de resource](/docs/specs/semconv/resource/) diff --git a/content/pt/docs/concepts/signals/traces.md b/content/pt/docs/concepts/signals/traces.md new file mode 100644 index 000000000000..d8d3271b6b44 --- /dev/null +++ b/content/pt/docs/concepts/signals/traces.md @@ -0,0 +1,398 @@ +--- +title: Rastros +weight: 1 +description: O caminho de uma solicitação através do seu aplicativo. +default_lang_commit: 57cd4f78d61cc1642ce56089aeec7ae278544194 +--- + +Os **rastros** nos fornecem uma visão geral do que acontece quando uma +solicitação é feita para uma aplicação. Seja sua aplicação um monólito com um +único banco de dados ou uma grande variedade de serviços, os rastros são +essenciais para compreender o "caminho" completo que uma solicitação percorreu +na sua aplicação. + +Vamos explorar isso com três unidades de trabalho, representadas como +[Trechos](#spans): + +{{% alert title="Note" %}} + +Os exemplos JSON a seguir não apresentam um formato específico, especialmente o +[OTLP/JSON](/docs/specs/otlp/#json-protobuf-encoding), que é mais verboso. + +{{% /alert %}} + +trecho `olá`: + +```json +{ + "name": "olá", + "context": { + "trace_id": "0x5b8aa5a2d2c872e8321cf37308d69df2", + "span_id": "0x051581bf3cb55c13" + }, + "parent_id": null, + "start_time": "2022-04-29T18:52:58.114201Z", + "end_time": "2022-04-29T18:52:58.114687Z", + "attributes": { + "http.route": "alguma_rota1" + }, + "events": [ + { + "name": "Guten Tag!", + "timestamp": "2022-04-29T18:52:58.114561Z", + "attributes": { + "event_attributes": 1 + } + } + ] +} +``` + +Este é o trecho raiz, sinalizando o início e o fim de toda a operação. Note que +ele possui um campo `trace_id` indicando o rastro, mas não possui `parent_id`. É +assim que você sabe que é o trecho raiz. + +O trecho `olá-cumprimentos`: + +```json +{ + "name": "olá-cumprimentos", + "context": { + "trace_id": "0x5b8aa5a2d2c872e8321cf37308d69df2", + "span_id": "0x5fb397be34d26b51" + }, + "parent_id": "0x051581bf3cb55c13", + "start_time": "2022-04-29T18:52:58.114304Z", + "end_time": "2022-04-29T22:52:58.114561Z", + "attributes": { + "http.route": "alguma_rota2" + }, + "events": [ + { + "name": "e aí!", + "timestamp": "2022-04-29T18:52:58.114561Z", + "attributes": { + "event_attributes": 1 + } + }, + { + "name": "até logo!", + "timestamp": "2022-04-29T18:52:58.114585Z", + "attributes": { + "event_attributes": 1 + } + } + ] +} +``` + +Este trecho encapsula tarefas específicas, como dizer saudações, e seu pai é o +trecho `olá`. Note que ele compartilha o mesmo `trace_id` que o trecho raiz, +indicando que faz parte do mesmo rastro. Além disso, ele possui um `parent_id` +que corresponde ao `span_id` do trecho `olá`. + +O trecho `olá-saudações`: + +```json +{ + "name": "olá-saudações", + "context": { + "trace_id": "0x5b8aa5a2d2c872e8321cf37308d69df2", + "span_id": "0x93564f51e1abe1c2" + }, + "parent_id": "0x051581bf3cb55c13", + "start_time": "2022-04-29T18:52:58.114492Z", + "end_time": "2022-04-29T18:52:58.114631Z", + "attributes": { + "http.route": "alguma_rota3" + }, + "events": [ + { + "name": "olá!", + "timestamp": "2022-04-29T18:52:58.114561Z", + "attributes": { + "event_attributes": 1 + } + } + ] +} +``` + +Este trecho representa a terceira operação neste rastro e assim como o anterior, +é um filho do trecho `olá`. Isso também o torna um irmão do trecho +`olá-cumprimentos`. + +Esses três blocos de JSON compartilham o mesmo `trace_id`, e o campo `parent_id` +que representa uma hierarquia. Isso o torna um rastro! + +Outra coisa que você notará é que cada trecho se parece com um log estruturado. +Isso porque, de certa forma, é mesmo! Uma maneira de pensar em rastros é como +uma coleção de logs estruturados com contexto, correlação, hierarquia e outros +recursos. No entanto, esses "logs estruturados" podem vir de diferentes +processos, serviços, VMs, data centers, e assim por diante. Isso torna possível +que o rastreamento represente uma visão de ponta a ponta de qualquer sistema. + +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 + +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 +seu ciclo de vida corresponde ao ciclo de vida da aplicação. A inicialização do +Trace Provider também inclui a inicialização de Resource e Exporter. Geralmente +é a primeira etapa do rastreamento com OpenTelemetry. Em alguns SDKs, um Trace +Provider global já é inicializado para você. + +## Rastro {#tracer} + +Um rastro cria trechos contendo mais informações sobre o que está acontecendo em +uma determinada operação, como uma solicitação em um serviço. Rastros são +criados a partir de Trace Providers. + +## Trace Exporters + +Trace Exporters enviam rastros para um consumidor. Esse consumidor pode ser a +saída padrão para depuração em tempo de desenvolvimento, o OpenTelemetry +Collector ou qualquer backend de código aberto ou fornecedor de sua escolha. + +## Propagação de Contexto {#context-propagation} + +A propagação de contexto é o conceito central que possibilita o rastreamento +distribuído. Com a propagação de contexto, trechos podem ser correlacionados +entre si e montados em um rastro, independentemente de onde os trechos são +gerados. Para saber mais sobre este tópico, consulte a página de conceitos sobre +[Propagação de Contexto](/docs/concepts/context-propagation). + +## Trechos {#spans} + +Um **trecho** representa uma unidade de trabalho ou operação. Trechos são os +blocos que compõem os rastros. No OpenTelemetry, eles incluem as seguintes +informações: + +- Nome +- ID do trecho pai (vazio para trecho raiz) +- Marcação de tempo do início e fim +- [Contexto do Trecho](#span-context) +- [Atributos](#attributes) +- [Eventos do Trecho](#span-events) +- [Links do Trecho](#span-links) +- [Estado do Trecho](#span-status) + +Exemplo de trecho: + +```json +{ + "name": "/v1/sys/health", + "context": { + "trace_id": "7bba9f33312b3dbb8b2c2c62bb7abe2d", + "span_id": "086e83747d0e381e" + }, + "parent_id": "", + "start_time": "2021-10-22 16:04:01.209458162 +0000 UTC", + "end_time": "2021-10-22 16:04:01.209514132 +0000 UTC", + "status_code": "STATUS_CODE_OK", + "status_message": "", + "attributes": { + "net.transport": "IP.TCP", + "net.peer.ip": "172.17.0.1", + "net.peer.port": "51820", + "net.host.ip": "10.177.2.152", + "net.host.port": "26040", + "http.method": "GET", + "http.target": "/v1/sys/health", + "http.server_name": "mortar-gateway", + "http.route": "/v1/sys/health", + "http.user_agent": "Consul Health Check", + "http.scheme": "http", + "http.host": "10.177.2.152:26040", + "http.flavor": "1.1" + }, + "events": [ + { + "name": "", + "message": "OK", + "timestamp": "2021-10-22 16:04:01.209512872 +0000 UTC" + } + ] +} +``` + +Trechos podem ser aninhados, como é indicado pela presença de um ID de trecho +pai: trechos filhos representam sub-operações. Isso permite que os trechos +capturem de forma mais precisa o trabalho realizado em uma aplicação. + +### Contexto do Trecho {#span-context} + +O contexto do trecho é um objeto imutável em cada trecho que contém o seguinte: + +- O Trace ID que representando o rastro do qual o trecho faz parte +- O Span ID do trecho +- Trace Flags, uma codificação binária contendo informações sobre o rastro +- Trace State, uma lista de pares chave-valor que podem carregar informações de + rastro específicos do fornecedor + +O contexto do trecho é a parte de um trecho que é serializada e propagada junto +com a [propagação de contexto](#context-propagation) e +[baggage](/docs/concepts/signals/baggage). + +Como o contexto do trecho contém o trace ID, o trace ID é usado ao criar +[links de trechos](#span-links). + +### Atributos {#attributes} + +Atributos são pares chave-valor que contêm metadados que você pode usar para +anotar um trecho e carregar informações sobre a operação que ele está +acompanhando. + +Por exemplo, se um trecho rastreia uma operação que adiciona um item ao carrinho +de compras de um usuário em um sistema de eCommerce, é possível obter o ID do +usuário o ID do item a ser adicionado ao carrinho e o ID do carrinho. + +Você pode adicionar atributos aos trecho durante ou após a criação do trecho. +Prefira adicionar atributos na criação do trecho para disponibilizar os +atributos para a amostragem do SDK. Se precisar adicionar um valor após a +criação do trecho, atualize o trecho com o valor. + +Os atributos têm as seguintes regras que é implementada por cada SDK: + +- Chaves devem ser valores de string não nulos +- Valores devem ser uma string não nula, boolean, valor de ponto flutuante, + inteiro ou um array desses valores + +Além disso, existem [atributos semânticos](/docs/specs/semconv/general/trace/), +que são convenções de nomenclatura conhecidas para metadados que estão +tipicamente presentes em operações comuns. É útil usar a nomenclatura de +atributos semânticos sempre que possível para que tipos comuns de metadados +sejam padronizados entre sistemas. + +### Eventos de Trechos {#span-events} + +Um evento de trecho pode ser considerado como uma mensagem de log estruturada +(ou anotação) em um trecho, tipicamente usada para apresentar um ponto +significativo e único no tempo durante a duração do trecho. + +Por exemplo, considere dois cenários em um navegador web: + +1. Rastrear o carregamento de uma página +2. Apontar quando uma página se torna interativa + +Um trecho é mais adequado para o primeiro cenário, pois é uma operação que tem +início e fim. + +Um evento de trecho é mais adequado para rastrear o segundo cenário porque +representa um ponto relevante e único na solicitação. + +#### Quando usar eventos de trecho versus atributos de trecho {#when-to-use-span-events-versus-span-attributes} + +Como eventos de trecho também contêm atributos, a questão de quando usar eventos +em vez de atributos nem sempre tem uma resposta óbvia. Para confirmar sua +decisão, verifique se uma data e hora específicas são relevantes para você. + +Por exemplo, quando você está rastreando uma operação com um trecho e a mesma é +finalizada, você pode querer adicionar dados da operação à sua telemetria. + +- Se a data e hora em que a operação é finalizada for significativo ou + relevante, anexe os dados a um evento de trecho. +- Se a data e hora não forem relevantes, anexe os dados como atributos de + trecho. + +### Links de Trechos {#span-links} + +Os links existem para que você possa associar um trecho a um ou mais trechos, +resultando em uma relação causal. Por exemplo, imagine que temos um sistema +distribuído onde algumas operações são rastreadas por um rastro. + +Em resposta a algumas dessas ações, uma operação adicional é enfileirada para +ser executada, mas sua execução é assíncrona. Podemos rastrear essa operação +seguinte através de um rastro. + +Gostaríamos de associar o rastro das operações subsequentes ao primeiro rastro, +mas não podemos prever quando as operações subsequentes começarão. Precisamos +associar os dois rastros, então utilizaremos um link de trecho. + +Você pode vincular o último trecho do primeiro rastro ao primeiro trecho do +segundo rastro. Agora, eles estão causalmente associados entre si. + +Os links são opcionais, mas servem como uma boa maneira de associar trechos de +rastro uns aos outros. + +### O estado do Trecho {#span-status} + +Cada trecho tem um estado. Os três valores possíveis são: + +- `Unset` +- `Error` +- `OK` + +O valor padrão é `Unset`. Um estado de trecho `Unset` significa que a operação +rastreada foi concluída com sucesso, sem erro. + +Quando o estado de um trecho é `Error`, isso significa que algum erro ocorreu na +operação rastreada. Por exemplo, isso pode ser devido a um erro de HTTP 500 em +um servidor que está lidando com uma solicitação. + +Quando o estado de um trecho é `OK`, isso significa que o trecho foi +expressamente marcado como livre de erros pelo desenvolvedor. Apesar de parecer +contraditório, não é necessário definir o estado de um trecho como `OK` quando +se sabe que foi concluído sem erros, pois já está implícito em `Unset`. O estado +de `OK` representa uma "decisão final" clara sobre o estado de um trecho que foi +explicitamente definido por um usuário. Isso é útil em qualquer situação em que +um desenvolvedor deseje que não haja outra interpretação de um trecho além de +"bem-sucedido". + +Para reiterar: `Unset` representa um trecho que foi concluído sem erro. `OK` +representa quando um desenvolvedor marca explicitamente um trecho como +bem-sucedido. Na maioria dos casos, não é necessário marcar explicitamente um +trecho como OK. + +### Tipo de Trecho {#span-kind} + +Quando um trecho é criado, ele pode ser do tipo: `Client`, `Server`, `Internal`, +`Producer` ou `Consumer`. Esse tipo de trecho indica ao backend de rastreamento +como o rastro deve ser montado. De acordo com a especificação do OpenTelemetry, +o trecho pai de um servidor geralmente é um trecho de cliente remoto, e o trecho +filho de um cliente geralmente é um trecho de servidor. Da mesma forma, o trecho +pai de um consumidor é sempre um fornecedor, e o trecho filho de um fornecedor é +sempre um consumidor. Se o tipo de trecho não for especificado, ele será +assumido como interno. + +Para mais informações sobre o tipo de Trecho, consulte +[SpanKind](/docs/specs/otel/trace/api/#spankind). + +#### Client + +Um trecho de client representa uma chamada remota síncrona de saída, como uma +solicitação HTTP ou uma chamada de banco de dados. Observe que, neste contexto, +"síncrono" não se refere a operações `async/await`, mas sim ao fato de que a +chamada não é enfileirada para processamento posterior. + +#### Server + +Um trecho de servidor representa uma chamada remota síncrona de entrada, como +uma solicitação HTTP de entrada ou uma chamada de procedimento remoto. + +#### Internal + +Trechos internos representam operações que não atravessam uma fronteira de +processo. Coisas como instrumentar uma chamada de função ou um Express +middleware podem usar trechos internos. + +#### Producer + +Trechos de fornecedor representam a criação de um trabalho que pode ser +processado de forma assíncrona mais tarde. Pode ser uma tarefa remota, como uma +adição em uma fila de tarefas, ou uma tarefa local processada por um ouvinte de +eventos. + +### Consumer + +Trechos de consumidor representam o processamento de um trabalho criado por um +produtor e podem começar muito tempo depois que o trecho de produtor já +terminou. + +## Especificação {#specification} + +Para mais informações, consulte +[especificação de rastros](/docs/specs/otel/overview/#tracing-signal). diff --git a/content/zh/blogs/2024/_index.md b/content/zh/blogs/2024/_index.md new file mode 100644 index 000000000000..672bfe5f1049 --- /dev/null +++ b/content/zh/blogs/2024/_index.md @@ -0,0 +1,6 @@ +--- +title: 2024 +weight: -2024 +outputs: [HTML, RSS] +default_lang_commit: aca2e07f0d3a6 +--- diff --git a/content/zh/blogs/2024/docs-localized.md b/content/zh/blogs/2024/docs-localized.md new file mode 100644 index 000000000000..a834d74b9800 --- /dev/null +++ b/content/zh/blogs/2024/docs-localized.md @@ -0,0 +1,26 @@ +--- +title: OpenTelemetry 网站支持多语言! +linkTitle: 多语言网站 +date: 2024-08-20 +author: >- + [Severin Neumann](https://github.com/svrnm) (Cisco) +issue: 4863 +sig: Comms +default_lang_commit: aca2e07f0d3a6 +--- + +我们很高兴地宣布,OpenTelemetry 网站现已提供多种语言版本! +本地化团队已经开始将网站页面翻译成[中文](/zh)、[日语](/ja)、[葡萄牙语](/pt)以及[西班牙语](/es)。 + +OpenTelemetry 项目已发展壮大,包括来自世界各地的贡献者和用户。 +提供多种语言的网站是确保每个人(无论其母语是什么)都能为项目做出贡献的重要一步。 +我们也很高兴这一举措让最终用户可以访问多语言文档,从而更轻松地学习和理解 OpenTelemetry。 + +要以您的首选语言访问网站,请使用页面右上角的语言选择菜单。 +我们邀请您为此做出贡献。您可以在 [#otel-docs-localization](https://cloud-native.slack.com/archives/C076RUAGP37) Slack +频道中找到其他本地化贡献者。如果您精通已支持的语言,您可以通过编写或审阅翻译来提供帮助。 +如果您的语言尚不受支持,并且您想帮忙翻译,[请创建一个 Issue]()。 + +您的贡献会产生重要的影响! + +我们感谢所有的贡献者使之成为可能,并且我们期待看到这些新的语言选项可以改善 OpenTelemetry 的用户体验。 diff --git a/content/zh/blogs/_index.md b/content/zh/blogs/_index.md new file mode 100644 index 000000000000..00f668f1f558 --- /dev/null +++ b/content/zh/blogs/_index.md @@ -0,0 +1,8 @@ +--- +title: 博客 +menu: + main: { weight: 50 } +redirects: [{ from: '', to: '2024/ 301!' }] +outputs: [HTML, RSS] +default_lang_commit: aca2e07f0d3a6 +--- diff --git a/data/ecosystem/vendors.yaml b/data/ecosystem/vendors.yaml index 62a1152902c3..37f3393ab1ca 100644 --- a/data/ecosystem/vendors.yaml +++ b/data/ecosystem/vendors.yaml @@ -51,7 +51,7 @@ nativeOTLP: true url: https://docs.centreon.com/pp/integrations/plugin-packs/getting-started/how-to-guides/telegraf/ contact: contact@centreon.com - oss: false + oss: true commercial: true - name: Chronosphere distribution: false diff --git a/data/registry/application-integration-python-checkmk.yml b/data/registry/application-integration-python-checkmk.yml new file mode 100644 index 000000000000..020bd8b1d94c --- /dev/null +++ b/data/registry/application-integration-python-checkmk.yml @@ -0,0 +1,22 @@ +# cspell:ignore checkmk +title: Distributed tracing of Checkmk with OpenTelemetry +registryType: application integration +language: python +tags: + - Python + - Checkmk +urls: + repo: https://github.com/Checkmk/checkmk + docs: https://checkmk.com/werk/16565 + website: https://checkmk.com +license: GPL-2.0 +description: + With this integration we introduced a new way for the developers to look + deeper into what happens inside Checkmk through the use of OpenTelemetry + traces, so that everyone using Checkmk could enjoy monitoring their + infrastructure with a tool with the best performance and fewer bottlenecks. +authors: + - name: Checkmk GmbH + email: community@checkmk.com +createdAt: 2024-08-22 +isNative: True diff --git a/data/registry/exporter-php-otlp.yml b/data/registry/exporter-php-otlp.yml index 54d7518159c1..b21952ccec3f 100644 --- a/data/registry/exporter-php-otlp.yml +++ b/data/registry/exporter-php-otlp.yml @@ -14,7 +14,7 @@ authors: package: registry: packagist name: open-telemetry/exporter-otlp - version: '1.0.4' + version: '1.1.0beta1' urls: repo: https://github.com/open-telemetry/opentelemetry-php/tree/main/src/Contrib/Otlp createdAt: 2022-12-14 diff --git a/data/registry/exporter-php-zipkin.yml b/data/registry/exporter-php-zipkin.yml index 2a3f8d3526e0..b6f3fed204a1 100644 --- a/data/registry/exporter-php-zipkin.yml +++ b/data/registry/exporter-php-zipkin.yml @@ -12,7 +12,7 @@ authors: package: name: open-telemetry/exporter-zipkin registry: packagist - version: 1.0.0 + version: 1.1.0beta1 urls: repo: https://github.com/open-telemetry/opentelemetry-php/tree/main/src/Contrib/Zipkin createdAt: 2022-12-14 diff --git a/data/registry/instrumentation-dotnet-aws.yml b/data/registry/instrumentation-dotnet-aws.yml index 9868c99005e3..111fc0b0eba6 100644 --- a/data/registry/instrumentation-dotnet-aws.yml +++ b/data/registry/instrumentation-dotnet-aws.yml @@ -20,4 +20,4 @@ isFirstParty: false package: registry: nuget name: OpenTelemetry.Instrumentation.AWS - version: 1.1.0-beta.4 + version: 1.1.0-beta.5 diff --git a/data/registry/instrumentation-dotnet-instrumentation-aws.yml b/data/registry/instrumentation-dotnet-instrumentation-aws.yml index e44d1fda85f6..9258a863a382 100644 --- a/data/registry/instrumentation-dotnet-instrumentation-aws.yml +++ b/data/registry/instrumentation-dotnet-instrumentation-aws.yml @@ -16,4 +16,4 @@ isFirstParty: false package: registry: nuget name: OpenTelemetry.Instrumentation.AWS - version: 1.1.0-beta.4 + version: 1.1.0-beta.5 diff --git a/data/registry/instrumentation-go-kafka.yml b/data/registry/instrumentation-go-kafka.yml new file mode 100644 index 000000000000..ca174a2c2d81 --- /dev/null +++ b/data/registry/instrumentation-go-kafka.yml @@ -0,0 +1,23 @@ +# cSpell:ignore: otelkafka jurabek +title: OpenTelemetry Go Instrumentation for confluent-kafka-go +registryType: instrumentation +language: go +tags: + - go + - instrumentation + - confluent-kafka-go + - kafka +license: Apache 2.0 +description: + Package otelkafka provides functionality to trace the + [confluent-kafka-go](https://github.com/confluentinc/confluent-kafka-go) + package. +authors: + - name: Jurabek + url: https://github.com/jurabek +urls: + repo: https://github.com/jurabek/otelkafka +createdAt: 2024-08-24 +package: + name: github.com/jurabek/otelkafka + registry: go diff --git a/data/registry/instrumentation-ruby-action-view.yml b/data/registry/instrumentation-ruby-action-view.yml index 59853d4a9efb..18a343f05e9e 100644 --- a/data/registry/instrumentation-ruby-action-view.yml +++ b/data/registry/instrumentation-ruby-action-view.yml @@ -15,4 +15,4 @@ createdAt: 2020-11-09 package: registry: gems name: opentelemetry-instrumentation-action_view - version: 0.7.2 + version: 0.7.3 diff --git a/data/registry/tools-ruby-rspec-matcher.yml b/data/registry/tools-ruby-rspec-matcher.yml index 79b33c894563..cc703e8614e1 100644 --- a/data/registry/tools-ruby-rspec-matcher.yml +++ b/data/registry/tools-ruby-rspec-matcher.yml @@ -18,4 +18,4 @@ createdAt: 2024-02-13 package: registry: gems name: rspec-otel - version: 0.0.3 + version: 0.0.4 diff --git a/package.json b/package.json index 5fc18e6f4a12..d36ef436d83f 100644 --- a/package.json +++ b/package.json @@ -117,16 +117,16 @@ "ajv-errors": "^3.0.0", "ajv-formats": "^3.0.1", "autoprefixer": "^10.4.20", - "cspell": "^8.13.1", + "cspell": "^8.14.2", "gulp": "^5.0.0", - "hugo-extended": "0.131.0", + "hugo-extended": "0.133.0", "js-yaml": "^4.1.0", "markdown-link-check": "^3.12.2", "markdownlint": "^0.34.0", "postcss-cli": "^11.0.0", "prettier": "^3.3.3", "require-dir": "^1.2.0", - "textlint": "^14.0.4", + "textlint": "^14.2.0", "textlint-filter-rule-allowlist": "^4.0.0", "textlint-filter-rule-comments": "^1.2.2", "textlint-rule-terminology": "^5.2.6", @@ -143,12 +143,12 @@ "@opentelemetry/resources": "^1.25.1", "@opentelemetry/sdk-trace-base": "^1.25.1", "@opentelemetry/sdk-trace-web": "^1.25.1", - "@opentelemetry/semantic-conventions": "^1.25.1", + "@opentelemetry/semantic-conventions": "^1.26.0", "path": "^0.12.7" }, "optionalDependencies": { - "netlify-cli": "^17.33.5", - "npm-check-updates": "^17.0.3" + "netlify-cli": "^17.34.3", + "npm-check-updates": "^17.1.0" }, "enginesComment": "Ensure that engines.node value stays consistent with the project's .nvmrc", "engines": { diff --git a/static/refcache.json b/static/refcache.json index 392b1436a7b8..3dc721f14e2d 100644 --- a/static/refcache.json +++ b/static/refcache.json @@ -323,6 +323,14 @@ "StatusCode": 200, "LastSeen": "2024-02-26T10:53:38.116124+01:00" }, + "https://checkmk.com": { + "StatusCode": 200, + "LastSeen": "2024-08-26T19:11:38.75527-04:00" + }, + "https://checkmk.com/werk/16565": { + "StatusCode": 200, + "LastSeen": "2024-08-26T18:57:00.215281-04:00" + }, "https://circleci.com": { "StatusCode": 206, "LastSeen": "2024-01-30T05:18:29.78394-05:00" @@ -367,6 +375,10 @@ "StatusCode": 200, "LastSeen": "2024-01-18T08:53:45.990809-05:00" }, + "https://cloud-native.slack.com/archives/C01NPAXACKT": { + "StatusCode": 200, + "LastSeen": "2024-08-23T20:33:45.460332059Z" + }, "https://cloud-native.slack.com/archives/C01NR1YLSE7": { "StatusCode": 200, "LastSeen": "2024-08-09T10:45:44.11347-04:00" @@ -2335,6 +2347,10 @@ "StatusCode": 200, "LastSeen": "2024-03-15T20:34:22.210208944Z" }, + "https://github.com/Checkmk/checkmk": { + "StatusCode": 200, + "LastSeen": "2024-08-26T18:57:03.140376-04:00" + }, "https://github.com/ChrsMark": { "StatusCode": 200, "LastSeen": "2024-05-15T19:23:42.377730577+03:00" @@ -2699,6 +2715,10 @@ "StatusCode": 200, "LastSeen": "2024-01-30T15:25:07.042795-05:00" }, + "https://github.com/confluentinc/confluent-kafka-go": { + "StatusCode": 200, + "LastSeen": "2024-08-25T09:39:34.657068291Z" + }, "https://github.com/containerd": { "StatusCode": 200, "LastSeen": "2024-08-07T15:43:55.092676+02:00" @@ -3199,6 +3219,14 @@ "StatusCode": 200, "LastSeen": "2024-01-18T19:12:01.969688-05:00" }, + "https://github.com/jurabek": { + "StatusCode": 200, + "LastSeen": "2024-08-25T09:39:30.336608946Z" + }, + "https://github.com/jurabek/otelkafka": { + "StatusCode": 200, + "LastSeen": "2024-08-25T09:39:26.927388436Z" + }, "https://github.com/kaylareopelle": { "StatusCode": 200, "LastSeen": "2024-06-11T16:22:58.076066-04:00" @@ -3523,6 +3551,10 @@ "StatusCode": 200, "LastSeen": "2024-05-03T07:21:04.501478-07:00" }, + "https://github.com/open-telemetry/community/issues/2260": { + "StatusCode": 200, + "LastSeen": "2024-08-23T20:33:47.852068252Z" + }, "https://github.com/open-telemetry/community/issues/828": { "StatusCode": 200, "LastSeen": "2024-01-18T19:37:16.771654-05:00" @@ -4135,6 +4167,14 @@ "StatusCode": 200, "LastSeen": "2024-08-09T10:44:15.667174-04:00" }, + "https://github.com/open-telemetry/opentelemetry-go-vanityurls": { + "StatusCode": 200, + "LastSeen": "2024-08-23T20:33:46.750242014Z" + }, + "https://github.com/open-telemetry/opentelemetry-go-vanityurls/issues/new": { + "StatusCode": 200, + "LastSeen": "2024-08-26T22:28:51.200439921Z" + }, "https://github.com/open-telemetry/opentelemetry-go/compare/v1.18.0...v1.19.0": { "StatusCode": 200, "LastSeen": "2024-01-30T16:05:30.739686-05:00" @@ -5327,6 +5367,10 @@ "StatusCode": 200, "LastSeen": "2024-01-30T06:06:14.924004-05:00" }, + "https://go.opentelemetry.io": { + "StatusCode": 200, + "LastSeen": "2024-08-23T20:33:45.025738962Z" + }, "https://go.opentelemetry.io/contrib/instrumentation/github.com/Shopify/sarama": { "StatusCode": 200, "LastSeen": "2024-01-30T16:16:02.15181-05:00" @@ -7291,6 +7335,10 @@ "StatusCode": 200, "LastSeen": "2024-08-07T15:44:43.306385+02:00" }, + "https://pkg.go.dev/github.com/jurabek/otelkafka": { + "StatusCode": 200, + "LastSeen": "2024-08-25T09:39:41.322663747Z" + }, "https://pkg.go.dev/github.com/mitchellh/mapstructure": { "StatusCode": 200, "LastSeen": "2024-01-30T06:06:09.278325-05:00" @@ -8151,6 +8199,10 @@ "StatusCode": 200, "LastSeen": "2024-01-18T19:10:29.862565-05:00" }, + "https://pkg.go.dev/go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc": { + "StatusCode": 200, + "LastSeen": "2024-08-26T18:58:45.152084327Z" + }, "https://pkg.go.dev/go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp": { "StatusCode": 200, "LastSeen": "2024-04-25T07:21:16.712986-07:00"