<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://doc.ruscomtech.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9E%D0%B1%D0%BE%D0%B3%D0%B0%D1%89%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B7_Kubernetes</id>
	<title>Обогащение из Kubernetes - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://doc.ruscomtech.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9E%D0%B1%D0%BE%D0%B3%D0%B0%D1%89%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B7_Kubernetes"/>
	<link rel="alternate" type="text/html" href="https://doc.ruscomtech.ru/index.php?title=%D0%9E%D0%B1%D0%BE%D0%B3%D0%B0%D1%89%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B7_Kubernetes&amp;action=history"/>
	<updated>2026-09-16T14:13:22Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://doc.ruscomtech.ru/index.php?title=%D0%9E%D0%B1%D0%BE%D0%B3%D0%B0%D1%89%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B7_Kubernetes&amp;diff=5817&amp;oldid=prev</id>
		<title>IKuznetsov: /* Демо конфигурация */</title>
		<link rel="alternate" type="text/html" href="https://doc.ruscomtech.ru/index.php?title=%D0%9E%D0%B1%D0%BE%D0%B3%D0%B0%D1%89%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B7_Kubernetes&amp;diff=5817&amp;oldid=prev"/>
		<updated>2025-10-06T20:22:19Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Демо конфигурация&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 20:22, 6 октября 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l354&quot;&gt;Строка 354:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 354:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Мы также настраиваем [https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.136.0/processor/transformprocessor процессор &amp;lt;code&amp;gt;transform&amp;lt;/code&amp;gt;]﻿ на автоматическое добавление информации о кластере &amp;#039;&amp;#039;&amp;#039;Kubernetes&amp;#039;&amp;#039;&amp;#039; в качестве атрибутов ресурсов для всех сигналов телеметрии.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Мы также настраиваем [https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.136.0/processor/transformprocessor процессор &amp;lt;code&amp;gt;transform&amp;lt;/code&amp;gt;]﻿ на автоматическое добавление информации о кластере &amp;#039;&amp;#039;&amp;#039;Kubernetes&amp;#039;&amp;#039;&amp;#039; в качестве атрибутов ресурсов для всех сигналов телеметрии.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=== Экспортеры ===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;В разделе &amp;lt;code&amp;gt;exporters&amp;lt;/code&amp;gt; мы указываем [https://github.com/open-telemetry/opentelemetry-collector/tree/v0.136.0/exporter/otlphttpexporter экспортер﻿ &amp;lt;code&amp;gt;otlphttp&amp;lt;/code&amp;gt;] по умолчанию и настраиваем его с помощью &#039;&#039;&#039;URL-адреса&#039;&#039;&#039; нашего &#039;&#039;&#039;API&#039;&#039;&#039; Ключ-АСТРОМ и требуемого токена аутентификации.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Для этой цели мы устанавливаем следующие две переменные среды и ссылаемся на них в значениях конфигурации для &amp;lt;code&amp;gt;endpoint&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;Authorization&amp;lt;/code&amp;gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &amp;lt;code&amp;gt;DT_ENDPOINT&amp;lt;/code&amp;gt; содержит базовый &#039;&#039;&#039;URL-адрес&#039;&#039;&#039; конечной точки &#039;&#039;&#039;API&#039;&#039;&#039; Ключ-АСТРОМ (например, &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://{your-environment-id}.live.astromkey.com/api/v2/otlp&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &amp;lt;code&amp;gt;DT_API_TOKEN&amp;lt;/code&amp;gt; содержит токен API&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=== Сервисные контейнеры ===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;В разделе &amp;lt;code&amp;gt;service&amp;lt;/code&amp;gt; мы собираем объекты приёмника, процессора и экспортёра в контейнеры для трассировок, метрик и логов. Эти контейнеры позволяют нам отправлять сигналы &#039;&#039;&#039;OpenTelemetry&#039;&#039;&#039; через экземпляр &#039;&#039;&#039;Collector&#039;&#039;&#039; и автоматически дополнять их дополнительной информацией, специфичной для &#039;&#039;&#039;Kubernetes&#039;&#039;&#039;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key ka_db:diff:1.41:old-5816:rev-5817:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>IKuznetsov</name></author>
	</entry>
	<entry>
		<id>https://doc.ruscomtech.ru/index.php?title=%D0%9E%D0%B1%D0%BE%D0%B3%D0%B0%D1%89%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B7_Kubernetes&amp;diff=5816&amp;oldid=prev</id>
		<title>IKuznetsov: Новая страница: «В следующем примере конфигурации показано, как настроить экземпляр &#039;&#039;&#039;Collector&#039;&#039;&#039; для обогаще...»</title>
		<link rel="alternate" type="text/html" href="https://doc.ruscomtech.ru/index.php?title=%D0%9E%D0%B1%D0%BE%D0%B3%D0%B0%D1%89%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B7_Kubernetes&amp;diff=5816&amp;oldid=prev"/>
		<updated>2025-10-06T20:19:58Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «В следующем примере конфигурации показано, как настроить экземпляр &amp;#039;&amp;#039;&amp;#039;Collector&amp;#039;&amp;#039;&amp;#039; для обогаще...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;В следующем примере конфигурации показано, как настроить экземпляр &amp;#039;&amp;#039;&amp;#039;Collector&amp;#039;&amp;#039;&amp;#039; для обогащения телеметрических данных &amp;#039;&amp;#039;&amp;#039;OTLP&amp;#039;&amp;#039;&amp;#039; дополнительными метаданными &amp;#039;&amp;#039;&amp;#039;Kubernetes&amp;#039;&amp;#039;&amp;#039;. Это включает, например, сведения о поде, развертывании и кластере, что позволяет Ключ-АСТРОМ корректно сопоставлять предоставленные телеметрические данные с соответствующими сущностями в Ключ-АСТРОМ.&lt;br /&gt;
&lt;br /&gt;
Ключ-АСТРОМ рекомендует использовать АктивныйШлюз для улучшения мониторинга состояния и производительности кластера &amp;#039;&amp;#039;&amp;#039;Kubernetes&amp;#039;&amp;#039;&amp;#039;. Развертывание АктивныйШлюз позволяет приложению Ключ-АСТРОМ &amp;#039;&amp;#039;&amp;#039;Kubernetes&amp;#039;&amp;#039;&amp;#039; визуализировать данные &amp;#039;&amp;#039;&amp;#039;Kubernetes&amp;#039;&amp;#039;&amp;#039; и &amp;#039;&amp;#039;&amp;#039;OpenTelemetry&amp;#039;&amp;#039;&amp;#039; и сопоставлять их с соответствующими сущностями &amp;#039;&amp;#039;&amp;#039;Kubernetes&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== Предустановка ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;необязательно&amp;lt;/code&amp;gt; Развернутый АктивныйШлюз для мониторинга &amp;#039;&amp;#039;&amp;#039;API&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;Kubernetes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Один из следующих дистрибутивов &amp;#039;&amp;#039;&amp;#039;Collector&amp;#039;&amp;#039;&amp;#039; с процессорами [https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.136.0/processor/k8sattributesprocessor Kubernetes Attributes]﻿ и [https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.136.0/processor/transformprocessor Transform]﻿ :&lt;br /&gt;
** [[Collector Ключ-АСТРОМ|&amp;#039;&amp;#039;&amp;#039;Collector&amp;#039;&amp;#039;&amp;#039; Ключ-АСТРОМ]]&lt;br /&gt;
** [[Collector Ключ-АСТРОМ|OpenTelemetry Contrib]]&lt;br /&gt;
** Пользовательская версия [[Collector Ключ-АСТРОМ|Builder]]&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Collector&amp;#039;&amp;#039;&amp;#039; развернут в режиме [[Развертывание Collector|агента]]&lt;br /&gt;
* [[Экспорт с помощью OTLP|URL-адрес API]] вашей среды Ключ-АСТРОМ&lt;br /&gt;
* [[Экспорт с помощью OTLP|API-токен]] с соответствующей областью доступа&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Kubernetes&amp;#039;&amp;#039;&amp;#039; настроен на требуемый контроль доступа на основе ролей&lt;br /&gt;
&lt;br /&gt;
Информацию о настройке &amp;#039;&amp;#039;&amp;#039;Collector&amp;#039;&amp;#039;&amp;#039; с использованием указанной ниже конфигурации см. в разделах [[Развертывание Collector|Развертывание коллектора]] и [[Настройка Collector|Конфигурация коллектора]].&lt;br /&gt;
&lt;br /&gt;
== Демо конфигурация ==&lt;br /&gt;
&amp;lt;u&amp;gt;Учетная запись службы&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Помимо конфигурации &amp;#039;&amp;#039;&amp;#039;Collector&amp;#039;&amp;#039;&amp;#039;, обязательно обновите конфигурацию &amp;#039;&amp;#039;&amp;#039;Kubernetes&amp;#039;&amp;#039;&amp;#039;, чтобы она соответствовала имени учетной записи службы, используемому в &amp;#039;&amp;#039;&amp;#039;файле RBAC&amp;#039;&amp;#039;&amp;#039; (см. записи для [https://github.com/open-telemetry/opentelemetry-helm-charts/blob/opentelemetry-collector-0.100.0/charts/opentelemetry-collector/values.yaml#L184-L191 Helm]﻿, [https://github.com/open-telemetry/opentelemetry-operator/blob/v0.136.0/docs/api.md#opentelemetrycollectorspec Operator]﻿).&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|extensions:&lt;br /&gt;
&lt;br /&gt;
  health_check:&lt;br /&gt;
&lt;br /&gt;
    endpoint: ${env:MY_POD_IP}:13133&lt;br /&gt;
&lt;br /&gt;
receivers:&lt;br /&gt;
&lt;br /&gt;
  otlp:&lt;br /&gt;
&lt;br /&gt;
    protocols:&lt;br /&gt;
&lt;br /&gt;
      grpc:&lt;br /&gt;
&lt;br /&gt;
        endpoint: ${env:MY_POD_IP}:4317&lt;br /&gt;
&lt;br /&gt;
      http:&lt;br /&gt;
&lt;br /&gt;
        endpoint: ${env:MY_POD_IP}:4318&lt;br /&gt;
&lt;br /&gt;
processors:&lt;br /&gt;
&lt;br /&gt;
  k8sattributes:&lt;br /&gt;
&lt;br /&gt;
    extract:&lt;br /&gt;
&lt;br /&gt;
      metadata:&lt;br /&gt;
&lt;br /&gt;
        - k8s.pod.name&lt;br /&gt;
&lt;br /&gt;
        - k8s.pod.uid&lt;br /&gt;
&lt;br /&gt;
        - k8s.pod.ip&lt;br /&gt;
&lt;br /&gt;
        - k8s.deployment.name&lt;br /&gt;
&lt;br /&gt;
        - k8s.replicaset.name&lt;br /&gt;
&lt;br /&gt;
        - k8s.statefulset.name&lt;br /&gt;
&lt;br /&gt;
        - k8s.daemonset.name&lt;br /&gt;
&lt;br /&gt;
        - k8s.job.name&lt;br /&gt;
&lt;br /&gt;
        - k8s.cronjob.name&lt;br /&gt;
&lt;br /&gt;
        - k8s.namespace.name&lt;br /&gt;
&lt;br /&gt;
        - k8s.node.name&lt;br /&gt;
&lt;br /&gt;
        - k8s.cluster.uid&lt;br /&gt;
&lt;br /&gt;
        - k8s.container.name&lt;br /&gt;
&lt;br /&gt;
      annotations:&lt;br /&gt;
&lt;br /&gt;
        - from: pod&lt;br /&gt;
&lt;br /&gt;
          key_regex: metadata.astromkey.com/(.*)&lt;br /&gt;
&lt;br /&gt;
          tag_name: $$1&lt;br /&gt;
&lt;br /&gt;
        - from: pod&lt;br /&gt;
&lt;br /&gt;
          key: metadata.astromkey.com&lt;br /&gt;
&lt;br /&gt;
          tag_name: metadata.astromkey.com&lt;br /&gt;
&lt;br /&gt;
    pod_association:&lt;br /&gt;
&lt;br /&gt;
      - sources:&lt;br /&gt;
&lt;br /&gt;
        - from: resource_attribute&lt;br /&gt;
&lt;br /&gt;
          name: k8s.pod.name&lt;br /&gt;
&lt;br /&gt;
        - from: resource_attribute&lt;br /&gt;
&lt;br /&gt;
          name: k8s.namespace.name&lt;br /&gt;
&lt;br /&gt;
      - sources:&lt;br /&gt;
&lt;br /&gt;
        - from: resource_attribute&lt;br /&gt;
&lt;br /&gt;
          name: k8s.pod.ip&lt;br /&gt;
&lt;br /&gt;
      - sources:&lt;br /&gt;
&lt;br /&gt;
        - from: resource_attribute&lt;br /&gt;
&lt;br /&gt;
          name: k8s.pod.uid&lt;br /&gt;
&lt;br /&gt;
      - sources:&lt;br /&gt;
&lt;br /&gt;
        - from: connection&lt;br /&gt;
&lt;br /&gt;
  transform:&lt;br /&gt;
&lt;br /&gt;
    error_mode: ignore&lt;br /&gt;
&lt;br /&gt;
    trace_statements: &amp;amp;astromkey_transformations&lt;br /&gt;
&lt;br /&gt;
      # Set attributes taken from k8s metadata.&lt;br /&gt;
&lt;br /&gt;
      - context: resource&lt;br /&gt;
&lt;br /&gt;
        statements:&lt;br /&gt;
&lt;br /&gt;
          - set(attributes[&amp;quot;k8s.workload.kind&amp;quot;], &amp;quot;job&amp;quot;) where IsString(attributes[&amp;quot;k8s.job.name&amp;quot;])&lt;br /&gt;
&lt;br /&gt;
          - set(attributes[&amp;quot;k8s.workload.name&amp;quot;], attributes[&amp;quot;k8s.job.name&amp;quot;]) where IsString(attributes[&amp;quot;k8s.job.name&amp;quot;])&lt;br /&gt;
&lt;br /&gt;
          - set(attributes[&amp;quot;k8s.workload.kind&amp;quot;], &amp;quot;cronjob&amp;quot;) where IsString(attributes[&amp;quot;k8s.cronjob.name&amp;quot;])&lt;br /&gt;
&lt;br /&gt;
          - set(attributes[&amp;quot;k8s.workload.name&amp;quot;], attributes[&amp;quot;k8s.cronjob.name&amp;quot;]) where IsString(attributes[&amp;quot;k8s.cronjob.name&amp;quot;])&lt;br /&gt;
&lt;br /&gt;
          - set(attributes[&amp;quot;k8s.workload.kind&amp;quot;], &amp;quot;daemonset&amp;quot;) where IsString(attributes[&amp;quot;k8s.daemonset.name&amp;quot;])&lt;br /&gt;
&lt;br /&gt;
          - set(attributes[&amp;quot;k8s.workload.name&amp;quot;], attributes[&amp;quot;k8s.daemonset.name&amp;quot;]) where IsString(attributes[&amp;quot;k8s.daemonset.name&amp;quot;])&lt;br /&gt;
&lt;br /&gt;
          - set(attributes[&amp;quot;k8s.workload.kind&amp;quot;], &amp;quot;statefulset&amp;quot;) where IsString(attributes[&amp;quot;k8s.statefulset.name&amp;quot;])&lt;br /&gt;
&lt;br /&gt;
          - set(attributes[&amp;quot;k8s.workload.name&amp;quot;], attributes[&amp;quot;k8s.statefulset.name&amp;quot;]) where IsString(attributes[&amp;quot;k8s.statefulset.name&amp;quot;])&lt;br /&gt;
&lt;br /&gt;
          - set(attributes[&amp;quot;k8s.workload.kind&amp;quot;], &amp;quot;replicaset&amp;quot;) where IsString(attributes[&amp;quot;k8s.replicaset.name&amp;quot;])&lt;br /&gt;
&lt;br /&gt;
          - set(attributes[&amp;quot;k8s.workload.name&amp;quot;], attributes[&amp;quot;k8s.replicaset.name&amp;quot;]) where IsString(attributes[&amp;quot;k8s.replicaset.name&amp;quot;])&lt;br /&gt;
&lt;br /&gt;
          - set(attributes[&amp;quot;k8s.workload.kind&amp;quot;], &amp;quot;deployment&amp;quot;) where IsString(attributes[&amp;quot;k8s.deployment.name&amp;quot;])&lt;br /&gt;
&lt;br /&gt;
          - set(attributes[&amp;quot;k8s.workload.name&amp;quot;], attributes[&amp;quot;k8s.deployment.name&amp;quot;]) where IsString(attributes[&amp;quot;k8s.deployment.name&amp;quot;])&lt;br /&gt;
&lt;br /&gt;
          # remove the delete statements if you want to preserve these attributes&lt;br /&gt;
&lt;br /&gt;
          - delete_key(attributes, &amp;quot;k8s.deployment.name&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
          - delete_key(attributes, &amp;quot;k8s.replicaset.name&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
          - delete_key(attributes, &amp;quot;k8s.statefulset.name&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
          - delete_key(attributes, &amp;quot;k8s.daemonset.name&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
          - delete_key(attributes, &amp;quot;k8s.cronjob.name&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
          - delete_key(attributes, &amp;quot;k8s.job.name&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
      - context: resource&lt;br /&gt;
&lt;br /&gt;
        statements:&lt;br /&gt;
&lt;br /&gt;
          - merge_maps(attributes, ParseJSON(attributes[&amp;quot;metadata.astromkey.com&amp;quot;]), &amp;quot;upsert&amp;quot;) where IsMatch(attributes[&amp;quot;metadata.astromkey.com&amp;quot;], &amp;quot;^\\{&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
          - delete_key(attributes, &amp;quot;metadata.astromkey.com&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    metric_statements: *astromkey_transformations&lt;br /&gt;
&lt;br /&gt;
    log_statements: *astromkey_transformations&lt;br /&gt;
&lt;br /&gt;
exporters:&lt;br /&gt;
&lt;br /&gt;
  otlphttp:&lt;br /&gt;
&lt;br /&gt;
    endpoint: ${env:DT_ENDPOINT}&lt;br /&gt;
&lt;br /&gt;
    headers:&lt;br /&gt;
&lt;br /&gt;
      Authorization: &amp;quot;Api-Token ${env:DT_API_TOKEN}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
service:&lt;br /&gt;
&lt;br /&gt;
  extensions:&lt;br /&gt;
&lt;br /&gt;
    - health_check&lt;br /&gt;
&lt;br /&gt;
  pipelines:&lt;br /&gt;
&lt;br /&gt;
    traces:&lt;br /&gt;
&lt;br /&gt;
      receivers: [otlp]&lt;br /&gt;
&lt;br /&gt;
      processors: [k8sattributes, transform]&lt;br /&gt;
&lt;br /&gt;
      exporters: [otlphttp]&lt;br /&gt;
&lt;br /&gt;
    metrics:&lt;br /&gt;
&lt;br /&gt;
      receivers: [otlp]&lt;br /&gt;
&lt;br /&gt;
      processors: [k8sattributes, transform]&lt;br /&gt;
&lt;br /&gt;
      exporters: [otlphttp]&lt;br /&gt;
&lt;br /&gt;
    logs:&lt;br /&gt;
&lt;br /&gt;
      receivers: [otlp]&lt;br /&gt;
&lt;br /&gt;
      processors: [k8sattributes, transform]&lt;br /&gt;
&lt;br /&gt;
      exporters: [otlphttp]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Конфигурация Kubernetes ==&lt;br /&gt;
Настройте следующий файл &amp;lt;code&amp;gt;rbac.yaml&amp;lt;/code&amp;gt; с вашим экземпляром &amp;#039;&amp;#039;&amp;#039;Kubernetes&amp;#039;&amp;#039;&amp;#039;, чтобы разрешить сборщику использовать &amp;#039;&amp;#039;&amp;#039;API&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;Kubernetes&amp;#039;&amp;#039;&amp;#039; с типом аутентификации учетной записи службы.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|apiVersion: v1&lt;br /&gt;
&lt;br /&gt;
kind: ServiceAccount&lt;br /&gt;
&lt;br /&gt;
metadata:&lt;br /&gt;
&lt;br /&gt;
  labels:&lt;br /&gt;
&lt;br /&gt;
    app: collector&lt;br /&gt;
&lt;br /&gt;
  name: collector&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
apiVersion: rbac.authorization.k8s.io/v1&lt;br /&gt;
&lt;br /&gt;
kind: ClusterRole&lt;br /&gt;
&lt;br /&gt;
metadata:&lt;br /&gt;
&lt;br /&gt;
  name: collector&lt;br /&gt;
&lt;br /&gt;
  labels:&lt;br /&gt;
&lt;br /&gt;
    app: collector&lt;br /&gt;
&lt;br /&gt;
rules:&lt;br /&gt;
&lt;br /&gt;
  - apiGroups:&lt;br /&gt;
&lt;br /&gt;
      - &amp;lt;nowiki&amp;gt;&amp;#039;&amp;#039;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    resources:&lt;br /&gt;
&lt;br /&gt;
      - &amp;#039;pods&amp;#039;&lt;br /&gt;
&lt;br /&gt;
      - &amp;#039;namespaces&amp;#039;&lt;br /&gt;
&lt;br /&gt;
    verbs:&lt;br /&gt;
&lt;br /&gt;
      - &amp;#039;get&amp;#039;&lt;br /&gt;
&lt;br /&gt;
      - &amp;#039;watch&amp;#039;&lt;br /&gt;
&lt;br /&gt;
      - &amp;#039;list&amp;#039;&lt;br /&gt;
&lt;br /&gt;
  - apiGroups:&lt;br /&gt;
&lt;br /&gt;
      - &amp;#039;apps&amp;#039;&lt;br /&gt;
&lt;br /&gt;
    resources:&lt;br /&gt;
&lt;br /&gt;
      - &amp;#039;replicasets&amp;#039;&lt;br /&gt;
&lt;br /&gt;
    verbs:&lt;br /&gt;
&lt;br /&gt;
      - &amp;#039;get&amp;#039;&lt;br /&gt;
&lt;br /&gt;
      - &amp;#039;list&amp;#039;&lt;br /&gt;
&lt;br /&gt;
      - &amp;#039;watch&amp;#039;&lt;br /&gt;
&lt;br /&gt;
  - apiGroups:&lt;br /&gt;
&lt;br /&gt;
      - &amp;#039;extensions&amp;#039;&lt;br /&gt;
&lt;br /&gt;
    resources:&lt;br /&gt;
&lt;br /&gt;
      - &amp;#039;replicasets&amp;#039;&lt;br /&gt;
&lt;br /&gt;
    verbs:&lt;br /&gt;
&lt;br /&gt;
      - &amp;#039;get&amp;#039;&lt;br /&gt;
&lt;br /&gt;
      - &amp;#039;list&amp;#039;&lt;br /&gt;
&lt;br /&gt;
      - &amp;#039;watch&amp;#039;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
apiVersion: rbac.authorization.k8s.io/v1&lt;br /&gt;
&lt;br /&gt;
kind: ClusterRoleBinding&lt;br /&gt;
&lt;br /&gt;
metadata:&lt;br /&gt;
&lt;br /&gt;
  name: collector&lt;br /&gt;
&lt;br /&gt;
  labels:&lt;br /&gt;
&lt;br /&gt;
    app: collector&lt;br /&gt;
&lt;br /&gt;
roleRef:&lt;br /&gt;
&lt;br /&gt;
  apiGroup: rbac.authorization.k8s.io&lt;br /&gt;
&lt;br /&gt;
  kind: ClusterRole&lt;br /&gt;
&lt;br /&gt;
  name: collector&lt;br /&gt;
&lt;br /&gt;
subjects:&lt;br /&gt;
&lt;br /&gt;
  - kind: ServiceAccount&lt;br /&gt;
&lt;br /&gt;
    name: collector&lt;br /&gt;
&lt;br /&gt;
    namespace: default&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Компоненты ==&lt;br /&gt;
Для нашей конфигурации мы настроили следующие компоненты.&lt;br /&gt;
&lt;br /&gt;
=== Приемники ===&lt;br /&gt;
В разделе &amp;lt;code&amp;gt;receivers&amp;lt;/code&amp;gt; мы указываем стандартный приемник &amp;lt;code&amp;gt;otlp&amp;lt;/code&amp;gt;, как активный компонент приемника для нашего экземпляра &amp;#039;&amp;#039;&amp;#039;Collector&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Это сделано в основном для демонстрационных целей. Вы можете указать здесь любой другой допустимый получатель (например, &amp;lt;code&amp;gt;zipkin&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=== Процессоры ===&lt;br /&gt;
В разделе &amp;lt;code&amp;gt;processors&amp;lt;/code&amp;gt; мы указываем [https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.136.0/processor/k8sattributesprocessor процессор﻿ &amp;lt;code&amp;gt;k8sattributes&amp;lt;/code&amp;gt;] со следующими параметрами:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;extract&amp;lt;/code&amp;gt;— Указывает, какую информацию следует извлечь.&lt;br /&gt;
* &amp;lt;code&amp;gt;pod_association&amp;lt;/code&amp;gt;— Указывает, как информация о модуле связана с атрибутами.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что атрибут &amp;lt;code&amp;gt;k8s.container.name&amp;lt;/code&amp;gt; будет извлечён только в том случае, если модуль, от которого был получен входящий сигнал, содержит только один контейнер, или если принятый сигнал содержит атрибут ресурса &amp;lt;code&amp;gt;k8s.container.id&amp;lt;/code&amp;gt;. В противном случае процессор &amp;lt;code&amp;gt;k8sattributes&amp;lt;/code&amp;gt; не сможет правильно связать нужный контейнер.&lt;br /&gt;
&lt;br /&gt;
Ключ-АСТРОМ &amp;#039;&amp;#039;&amp;#039;Operator&amp;#039;&amp;#039;&amp;#039; дополняет данные &amp;#039;&amp;#039;&amp;#039;OpenTelemetry&amp;#039;&amp;#039;&amp;#039; из модулей &amp;#039;&amp;#039;&amp;#039;Kubernetes&amp;#039;&amp;#039;&amp;#039; аннотациями &amp;lt;code&amp;gt;metadata.astromkey.com&amp;lt;/code&amp;gt;. При наличии этих аннотаций процессор &amp;lt;code&amp;gt;k8sattributes&amp;lt;/code&amp;gt; их извлекает.&lt;br /&gt;
&lt;br /&gt;
Мы также настраиваем [https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.136.0/processor/transformprocessor процессор &amp;lt;code&amp;gt;transform&amp;lt;/code&amp;gt;]﻿ на автоматическое добавление информации о кластере &amp;#039;&amp;#039;&amp;#039;Kubernetes&amp;#039;&amp;#039;&amp;#039; в качестве атрибутов ресурсов для всех сигналов телеметрии.&lt;/div&gt;</summary>
		<author><name>IKuznetsov</name></author>
	</entry>
</feed>