<?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%9C%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3_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%9C%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3_Kubernetes"/>
	<link rel="alternate" type="text/html" href="https://doc.ruscomtech.ru/index.php?title=%D0%9C%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3_Kubernetes&amp;action=history"/>
	<updated>2026-09-16T15:03:22Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://doc.ruscomtech.ru/index.php?title=%D0%9C%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3_Kubernetes&amp;diff=6328&amp;oldid=prev</id>
		<title>IKuznetsov в 22:27, 13 апреля 2026</title>
		<link rel="alternate" type="text/html" href="https://doc.ruscomtech.ru/index.php?title=%D0%9C%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3_Kubernetes&amp;diff=6328&amp;oldid=prev"/>
		<updated>2026-04-13T22:27:58Z</updated>

		<summary type="html">&lt;p&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;Версия от 22:27, 13 апреля 2026&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-l5&quot;&gt;Строка 5:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 5:&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;|&amp;lt;u&amp;gt;Ключ-АСТРОМ Operator&amp;lt;/u&amp;gt;&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;|&amp;lt;u&amp;gt;Ключ-АСТРОМ Operator&amp;lt;/u&amp;gt;&lt;/div&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;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; 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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Ключ-АСТРОМ рекомендует использовать &#039;&#039;&#039;Operator&#039;&#039;&#039; для мониторинга &#039;&#039;&#039;Kubernetes&#039;&#039;&#039;. Однако этот вариант использования разработан специально для пользователей &#039;&#039;&#039;OpenTelemetry&#039;&#039;&#039;, которые решили не развертывать &#039;&#039;&#039;Operator&#039;&#039;&#039;. Он использует только данные &#039;&#039;&#039;OpenTelemetry&#039;&#039;&#039;, которые не интегрированы в приложение Ключ-АСТРОМ &#039;&#039;&#039;Kubernetes&#039;&#039;&#039;. Несмотря на это, Ключ-АСТРОМ предоставляет готовые панели мониторинга &#039;&#039;&#039;Kubernetes&#039;&#039;&#039; и позволяет пользователям создавать собственные дашборды &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;и блокноты &lt;/del&gt;на основе собранных данных телеметрии.&lt;/div&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;Ключ-АСТРОМ рекомендует использовать &#039;&#039;&#039;Operator&#039;&#039;&#039; для мониторинга &#039;&#039;&#039;Kubernetes&#039;&#039;&#039;. Однако этот вариант использования разработан специально для пользователей &#039;&#039;&#039;OpenTelemetry&#039;&#039;&#039;, которые решили не развертывать &#039;&#039;&#039;Operator&#039;&#039;&#039;. Он использует только данные &#039;&#039;&#039;OpenTelemetry&#039;&#039;&#039;, которые не интегрированы в приложение Ключ-АСТРОМ &#039;&#039;&#039;Kubernetes&#039;&#039;&#039;. Несмотря на это, Ключ-АСТРОМ предоставляет готовые панели мониторинга &#039;&#039;&#039;Kubernetes&#039;&#039;&#039; и позволяет пользователям создавать собственные дашборды на основе собранных данных телеметрии.&lt;/div&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;|}&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;|}&lt;/div&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;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;!-- diff cache key ka_db:diff:1.41:old-5820:rev-6328:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>IKuznetsov</name></author>
	</entry>
	<entry>
		<id>https://doc.ruscomtech.ru/index.php?title=%D0%9C%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3_Kubernetes&amp;diff=5820&amp;oldid=prev</id>
		<title>IKuznetsov: Новая страница: «&#039;&#039;&#039;Collector&#039;&#039;&#039; &#039;&#039;&#039;OpenTelemetry&#039;&#039;&#039; обеспечивает расширенную поддержку мониторинга кластера и рабочей...»</title>
		<link rel="alternate" type="text/html" href="https://doc.ruscomtech.ru/index.php?title=%D0%9C%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3_Kubernetes&amp;diff=5820&amp;oldid=prev"/>
		<updated>2025-10-06T20:56:10Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «&amp;#039;&amp;#039;&amp;#039;Collector&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;OpenTelemetry&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;OpenTelemetry&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;.&lt;br /&gt;
&lt;br /&gt;
В этом примере использования объясняется, как настроить коллекторы &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;#039;&amp;#039;&amp;#039;OpenTelemetry&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;Dashboards&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;u&amp;gt;Ключ-АСТРОМ Operator&amp;lt;/u&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;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;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;#039;&amp;#039;&amp;#039;Kubernetes&amp;#039;&amp;#039;&amp;#039; и позволяет пользователям создавать собственные дашборды и блокноты на основе собранных данных телеметрии.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Предпосылки ==&lt;br /&gt;
&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/receiver/k8sclusterreceiver Kubernetes Cluster]﻿, [https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.136.0/receiver/k8seventsreceiver Kubernetes Events]﻿ и [https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.136.0/receiver/kubeletstatsreceiver Kubelet Stats]﻿ :&lt;br /&gt;
** [[Collector Ключ-АСТРОМ|&amp;#039;&amp;#039;&amp;#039;Collector&amp;#039;&amp;#039;&amp;#039; Ключ-АСТРОМ]]&lt;br /&gt;
** [[Collector Ключ-АСТРОМ|OpenTelemetry Collector Contrib]]&lt;br /&gt;
** Пользовательская версия [[Collector Ключ-АСТРОМ|Builder]]&lt;br /&gt;
* Два развертывания &amp;#039;&amp;#039;&amp;#039;Collector&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*# Один в режиме &amp;#039;&amp;#039;&amp;#039;агента&amp;#039;&amp;#039;&amp;#039; для телеметрии на уровне рабочей нагрузки&lt;br /&gt;
*# Один в режиме &amp;#039;&amp;#039;&amp;#039;шлюза&amp;#039;&amp;#039;&amp;#039; для телеметрии на уровне кластера и пересылки в Ключ-АСТРОМ&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;URL-адрес&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;API&amp;#039;&amp;#039;&amp;#039; вашей среды Ключ-АСТРОМ&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;API-токен&amp;#039;&amp;#039;&amp;#039; с соответствующей областью доступа&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Kubernetes&amp;#039;&amp;#039;&amp;#039; настроен на требуемый контроль доступа на основе ролей&lt;br /&gt;
&lt;br /&gt;
Инструкции по настройке с использованием представленных ниже конфигураций см . в разделах [[Развертывание Collector|Развертывание]] и [[Настройка Collector|Конфигурация коллектора]].&lt;br /&gt;
&lt;br /&gt;
== Демонстрационные конфигурации ==&lt;br /&gt;
&lt;br /&gt;
=== Конфигурация RBAC ===&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: otelcol-dt&lt;br /&gt;
&lt;br /&gt;
  name: otelcol-dt&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: otelcol-dt&lt;br /&gt;
&lt;br /&gt;
  labels:&lt;br /&gt;
&lt;br /&gt;
    app: otelcol-dt&lt;br /&gt;
&lt;br /&gt;
rules:&lt;br /&gt;
&lt;br /&gt;
  - apiGroups:&lt;br /&gt;
&lt;br /&gt;
      - &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    resources:&lt;br /&gt;
&lt;br /&gt;
      - events&lt;br /&gt;
&lt;br /&gt;
      - namespaces&lt;br /&gt;
&lt;br /&gt;
      - namespaces/status&lt;br /&gt;
&lt;br /&gt;
      - nodes&lt;br /&gt;
&lt;br /&gt;
      - nodes/spec&lt;br /&gt;
&lt;br /&gt;
      - nodes/stats&lt;br /&gt;
&lt;br /&gt;
      - nodes/proxy&lt;br /&gt;
&lt;br /&gt;
      - persistentvolumes&lt;br /&gt;
&lt;br /&gt;
      - persistentvolumeclaims&lt;br /&gt;
&lt;br /&gt;
      - pods&lt;br /&gt;
&lt;br /&gt;
      - pods/status&lt;br /&gt;
&lt;br /&gt;
      - replicationcontrollers&lt;br /&gt;
&lt;br /&gt;
      - replicationcontrollers/status&lt;br /&gt;
&lt;br /&gt;
      - resourcequotas&lt;br /&gt;
&lt;br /&gt;
      - services&lt;br /&gt;
&lt;br /&gt;
    verbs:&lt;br /&gt;
&lt;br /&gt;
      - get&lt;br /&gt;
&lt;br /&gt;
      - list&lt;br /&gt;
&lt;br /&gt;
      - watch&lt;br /&gt;
&lt;br /&gt;
  - apiGroups:&lt;br /&gt;
&lt;br /&gt;
      - apps&lt;br /&gt;
&lt;br /&gt;
    resources:&lt;br /&gt;
&lt;br /&gt;
      - daemonsets&lt;br /&gt;
&lt;br /&gt;
      - deployments&lt;br /&gt;
&lt;br /&gt;
      - replicasets&lt;br /&gt;
&lt;br /&gt;
      - statefulsets&lt;br /&gt;
&lt;br /&gt;
    verbs:&lt;br /&gt;
&lt;br /&gt;
      - get&lt;br /&gt;
&lt;br /&gt;
      - list&lt;br /&gt;
&lt;br /&gt;
      - watch&lt;br /&gt;
&lt;br /&gt;
  - apiGroups:&lt;br /&gt;
&lt;br /&gt;
      - batch&lt;br /&gt;
&lt;br /&gt;
    resources:&lt;br /&gt;
&lt;br /&gt;
      - jobs&lt;br /&gt;
&lt;br /&gt;
      - cronjobs&lt;br /&gt;
&lt;br /&gt;
    verbs:&lt;br /&gt;
&lt;br /&gt;
      - get&lt;br /&gt;
&lt;br /&gt;
      - list&lt;br /&gt;
&lt;br /&gt;
      - watch&lt;br /&gt;
&lt;br /&gt;
  - apiGroups:&lt;br /&gt;
&lt;br /&gt;
      - autoscaling&lt;br /&gt;
&lt;br /&gt;
    resources:&lt;br /&gt;
&lt;br /&gt;
      - horizontalpodautoscalers&lt;br /&gt;
&lt;br /&gt;
    verbs:&lt;br /&gt;
&lt;br /&gt;
      - get&lt;br /&gt;
&lt;br /&gt;
      - list&lt;br /&gt;
&lt;br /&gt;
      - watch&lt;br /&gt;
&lt;br /&gt;
  - apiGroups:&lt;br /&gt;
&lt;br /&gt;
      - coordination.k8s.io&lt;br /&gt;
&lt;br /&gt;
    resources:&lt;br /&gt;
&lt;br /&gt;
      - leases&lt;br /&gt;
&lt;br /&gt;
    verbs:&lt;br /&gt;
&lt;br /&gt;
      - get&lt;br /&gt;
&lt;br /&gt;
      - list&lt;br /&gt;
&lt;br /&gt;
      - watch&lt;br /&gt;
&lt;br /&gt;
      - create&lt;br /&gt;
&lt;br /&gt;
      - update&lt;br /&gt;
&lt;br /&gt;
      - patch&lt;br /&gt;
&lt;br /&gt;
      - delete&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: otelcol-dt&lt;br /&gt;
&lt;br /&gt;
  labels:&lt;br /&gt;
&lt;br /&gt;
    app: otelcol-dt&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: otelcol-dt&lt;br /&gt;
&lt;br /&gt;
subjects:&lt;br /&gt;
&lt;br /&gt;
  - kind: ServiceAccount&lt;br /&gt;
&lt;br /&gt;
    name: otelcol-dt&lt;br /&gt;
&lt;br /&gt;
    namespace: default&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Конфигурация Collector ===&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;файле&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.127.2/charts/opentelemetry-collector/values.yaml#L245-L252 Helm]﻿ и [https://github.com/open-telemetry/opentelemetry-operator/blob/v0.136.0/docs/api/opentelemetrycollectors.md#opentelemetrycollectorspec Operator]﻿).&lt;br /&gt;
&lt;br /&gt;
==== Развертывание агента ====&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: 0.0.0.0:13133&lt;br /&gt;
&lt;br /&gt;
receivers:&lt;br /&gt;
&lt;br /&gt;
  kubeletstats:&lt;br /&gt;
&lt;br /&gt;
    auth_type: &amp;quot;serviceAccount&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    collection_interval: 10s&lt;br /&gt;
&lt;br /&gt;
    node: &amp;#039;${env:K8S_NODE_NAME}&amp;#039;&lt;br /&gt;
&lt;br /&gt;
    extra_metadata_labels:&lt;br /&gt;
&lt;br /&gt;
      - k8s.volume.type&lt;br /&gt;
&lt;br /&gt;
    k8s_api_config:&lt;br /&gt;
&lt;br /&gt;
      auth_type: &amp;quot;serviceAccount&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    endpoint: &amp;quot;&amp;lt;nowiki&amp;gt;https://${env:K8S_NODE_NAME}:10250&amp;lt;/nowiki&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    insecure_skip_verify: true&lt;br /&gt;
&lt;br /&gt;
    metric_groups:&lt;br /&gt;
&lt;br /&gt;
      - node&lt;br /&gt;
&lt;br /&gt;
      - pod&lt;br /&gt;
&lt;br /&gt;
      - container&lt;br /&gt;
&lt;br /&gt;
      - volume&lt;br /&gt;
&lt;br /&gt;
processors:&lt;br /&gt;
&lt;br /&gt;
  filter:&lt;br /&gt;
&lt;br /&gt;
    error_mode: ignore&lt;br /&gt;
&lt;br /&gt;
    metrics:&lt;br /&gt;
&lt;br /&gt;
      metric:&lt;br /&gt;
&lt;br /&gt;
          - &amp;#039;IsMatch(name, &amp;quot;k8s.volume.*&amp;quot;) and resource.attributes[&amp;quot;k8s.volume.type&amp;quot;] == nil&amp;#039;&lt;br /&gt;
&lt;br /&gt;
          - &amp;#039;resource.attributes[&amp;quot;k8s.volume.type&amp;quot;] == &amp;quot;configMap&amp;quot;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
          - &amp;#039;resource.attributes[&amp;quot;k8s.volume.type&amp;quot;] == &amp;quot;emptyDir&amp;quot;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
          - &amp;#039;resource.attributes[&amp;quot;k8s.volume.type&amp;quot;] == &amp;quot;secret&amp;quot;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
  k8sattributes:&lt;br /&gt;
&lt;br /&gt;
    filter:&lt;br /&gt;
&lt;br /&gt;
      node_from_env_var: K8S_NODE_NAME&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;
exporters:&lt;br /&gt;
&lt;br /&gt;
  otlp:&lt;br /&gt;
&lt;br /&gt;
    endpoint: otelcolsvc:4317&lt;br /&gt;
&lt;br /&gt;
    tls:&lt;br /&gt;
&lt;br /&gt;
      insecure: true&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;
    metrics:&lt;br /&gt;
&lt;br /&gt;
      receivers:&lt;br /&gt;
&lt;br /&gt;
        - kubeletstats&lt;br /&gt;
&lt;br /&gt;
      processors:&lt;br /&gt;
&lt;br /&gt;
        - filter&lt;br /&gt;
&lt;br /&gt;
        - k8sattributes&lt;br /&gt;
&lt;br /&gt;
      exporters:&lt;br /&gt;
&lt;br /&gt;
        - otlp&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Развертывание шлюза ====&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: 0.0.0.0: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: 0.0.0.0:4317&lt;br /&gt;
&lt;br /&gt;
  k8s_events:&lt;br /&gt;
&lt;br /&gt;
    auth_type: &amp;quot;serviceAccount&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  k8s_cluster:&lt;br /&gt;
&lt;br /&gt;
    auth_type: &amp;quot;serviceAccount&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    collection_interval: 10s&lt;br /&gt;
&lt;br /&gt;
    allocatable_types_to_report:&lt;br /&gt;
&lt;br /&gt;
      - cpu&lt;br /&gt;
&lt;br /&gt;
      - memory&lt;br /&gt;
&lt;br /&gt;
      - pods&lt;br /&gt;
&lt;br /&gt;
    node_conditions_to_report:&lt;br /&gt;
&lt;br /&gt;
      - Ready&lt;br /&gt;
&lt;br /&gt;
      - MemoryPressure&lt;br /&gt;
&lt;br /&gt;
      - PIDPressure&lt;br /&gt;
&lt;br /&gt;
      - DiskPressure&lt;br /&gt;
&lt;br /&gt;
      - NetworkUnavailable&lt;br /&gt;
&lt;br /&gt;
    metrics:&lt;br /&gt;
&lt;br /&gt;
      k8s.node.condition:&lt;br /&gt;
&lt;br /&gt;
        enabled: true&lt;br /&gt;
&lt;br /&gt;
      k8s.pod.status_reason:&lt;br /&gt;
&lt;br /&gt;
        enabled: true&lt;br /&gt;
&lt;br /&gt;
processors:&lt;br /&gt;
&lt;br /&gt;
  k8sattributes:&lt;br /&gt;
&lt;br /&gt;
    filter:&lt;br /&gt;
&lt;br /&gt;
      node_from_env_var: K8S_NODE_NAME&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.cluster.name&amp;quot;], &amp;quot;${env:CLUSTER_NAME}&amp;quot;)&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;
      # Set attributes from metadata specified in astromkey and set through the astromkey Operator.&lt;br /&gt;
&lt;br /&gt;
      # For more info: &amp;lt;nowiki&amp;gt;https://docs.astromkey.com/docs/shortlink/k8s-metadata-telemetry-enrichment&amp;lt;/nowiki&amp;gt;&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:&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.cluster.name&amp;quot;], &amp;quot;${env:CLUSTER_NAME}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  cumulativetodelta:&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:&lt;br /&gt;
&lt;br /&gt;
        - otlp&lt;br /&gt;
&lt;br /&gt;
      processors:&lt;br /&gt;
&lt;br /&gt;
        - k8sattributes&lt;br /&gt;
&lt;br /&gt;
        - transform&lt;br /&gt;
&lt;br /&gt;
      exporters:&lt;br /&gt;
&lt;br /&gt;
        - otlphttp&lt;br /&gt;
&lt;br /&gt;
    metrics/forward:&lt;br /&gt;
&lt;br /&gt;
      receivers:&lt;br /&gt;
&lt;br /&gt;
        - otlp&lt;br /&gt;
&lt;br /&gt;
      processors:&lt;br /&gt;
&lt;br /&gt;
        - transform&lt;br /&gt;
&lt;br /&gt;
        - cumulativetodelta&lt;br /&gt;
&lt;br /&gt;
      exporters:&lt;br /&gt;
&lt;br /&gt;
        - otlphttp&lt;br /&gt;
&lt;br /&gt;
    metrics:&lt;br /&gt;
&lt;br /&gt;
      receivers:&lt;br /&gt;
&lt;br /&gt;
        - k8s_cluster&lt;br /&gt;
&lt;br /&gt;
      processors:&lt;br /&gt;
&lt;br /&gt;
        - k8sattributes&lt;br /&gt;
&lt;br /&gt;
        - transform&lt;br /&gt;
&lt;br /&gt;
        - cumulativetodelta&lt;br /&gt;
&lt;br /&gt;
      exporters:&lt;br /&gt;
&lt;br /&gt;
        - otlphttp&lt;br /&gt;
&lt;br /&gt;
    logs:&lt;br /&gt;
&lt;br /&gt;
      receivers:&lt;br /&gt;
&lt;br /&gt;
        - k8s_events&lt;br /&gt;
&lt;br /&gt;
      processors:&lt;br /&gt;
&lt;br /&gt;
        - transform&lt;br /&gt;
&lt;br /&gt;
      exporters:&lt;br /&gt;
&lt;br /&gt;
        - otlphttp&lt;br /&gt;
|}&lt;br /&gt;
&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;[https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.136.0/receiver/kubeletstatsreceiver kubeletstats]&amp;lt;/code&amp;gt;.﻿&lt;br /&gt;
&lt;br /&gt;
Для этого приемника требуется, чтобы переменная среды &amp;lt;code&amp;gt;K8S_NODE_NAME&amp;lt;/code&amp;gt; была настроена на использование [https://kubernetes.io/docs/concepts/workloads/pods/downward-api/ Kubernetes Downward API]﻿ (см. [https://kubernetes.io/docs/tasks/inject-data-application/environment-variable-expose-pod-information/ пример﻿ &amp;lt;code&amp;gt;spec.nodeName&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;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;filter&amp;lt;/code&amp;gt;: Для фильтрации атрибутов Kubernetes.&lt;br /&gt;
* &amp;lt;code&amp;gt;k8sattributes&amp;lt;/code&amp;gt;: Для извлечения и предоставления данных модуля.&lt;br /&gt;
&lt;br /&gt;
==== Экспортеры ====&lt;br /&gt;
В разделе &amp;lt;code&amp;gt;exporters&amp;lt;/code&amp;gt; мы указываем [https://github.com/open-telemetry/opentelemetry-collector/tree/v0.136.0/exporter/otlpexporter экспортер &amp;lt;code&amp;gt;otlp&amp;lt;/code&amp;gt;]﻿ и настраиваем его для экспорта данных в наш экземпляр шлюза Collector. Убедитесь, что вы указали правильное имя хоста для &amp;lt;code&amp;gt;endpoint&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Сервисные контейнеры ====&lt;br /&gt;
В разделе &amp;lt;code&amp;gt;service&amp;lt;/code&amp;gt; мы собираем объекты приёмника, процессора и экспортёра в контейнеры для трассировок, метрик и логов. Эти контейнеры позволяют нам отправлять сигналы &amp;#039;&amp;#039;&amp;#039;OpenTelemetry&amp;#039;&amp;#039;&amp;#039; через экземпляр &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;.&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; мы указываем следующие приемники в качестве активных компонентов приемника для развертывания нашего шлюза:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;otlp&amp;lt;/code&amp;gt;: Для принятия запросов &amp;#039;&amp;#039;&amp;#039;OTLP&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* &amp;lt;code&amp;gt;[https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.136.0/receiver/k8seventsreceiver k8sevents]&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 Kubernetes&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* &amp;lt;code&amp;gt;[http://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.136.0/receiver/k8sclusterreceiver k8s_cluster]&amp;lt;/code&amp;gt;﻿: Для получения метрик уровня кластера и событий сущностей с сервера &amp;#039;&amp;#039;&amp;#039;API Kubernetes&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
(*) В настоящее время &amp;#039;&amp;#039;&amp;lt;code&amp;gt;k8seventsreceiver&amp;lt;/code&amp;gt; находится на стадии альфа-тестирования и может претерпеть значительные изменения. Несмотря на раннюю стадию разработки, он был включён в дистрибутив Ключ-АСТРОМ OpenTelemetry Collector для поддержки раннего внедрения и экспериментов. Обратите внимание, что на данном этапе стабильность, производительность и полнота функций не гарантируются.&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
==== Процессоры ====&lt;br /&gt;
В разделе &amp;lt;code&amp;gt;processors&amp;lt;/code&amp;gt; мы указываем следующие процессоры:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;k8sattributes&amp;lt;/code&amp;gt;: для извлечения и предоставления данных модуля. Для этого необходимо задать переменную окружения с именем узла &amp;#039;&amp;#039;&amp;#039;Kubernetes&amp;#039;&amp;#039;&amp;#039;. Для этого приёмника требуется задать переменную окружения &amp;lt;code&amp;gt;K8S_NODE_NAME&amp;lt;/code&amp;gt; с использованием [https://kubernetes.io/docs/concepts/workloads/pods/downward-api/ Kubernetes Downward API] (см. [https://kubernetes.io/docs/tasks/inject-data-application/environment-variable-expose-pod-information/ пример &amp;lt;code&amp;gt;K8S_NODE_NAMEspec.nodeName&amp;lt;/code&amp;gt;]).﻿﻿&lt;br /&gt;
* &amp;lt;code&amp;gt;transform&amp;lt;/code&amp;gt;: для преобразования метрик &amp;#039;&amp;#039;&amp;#039;Kubernetes&amp;#039;&amp;#039;&amp;#039;. Для этого необходимо задать переменную окружения &amp;lt;code&amp;gt;CLUSTER_NAME&amp;lt;/code&amp;gt; с именем кластера. Задайте в качестве значения переменной произвольное имя, под которым ваш кластер будет отображаться в Ключ-АСТРОМ.&lt;br /&gt;
* &amp;lt;code&amp;gt;cumulativetodelta&amp;lt;/code&amp;gt;: Для включения преобразования кумулятивных показателей.&lt;br /&gt;
&lt;br /&gt;
==== Экспортеры ====&lt;br /&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;] и настраиваем его с помощью &amp;#039;&amp;#039;&amp;#039;URL-адреса&amp;#039;&amp;#039;&amp;#039; нашего &amp;#039;&amp;#039;&amp;#039;API&amp;#039;&amp;#039;&amp;#039; Ключ-АСТРОМ и необходимого токена аутентификации.&lt;br /&gt;
&lt;br /&gt;
Для этой цели мы устанавливаем следующие две переменные среды и ссылаемся на них в значениях конфигурации для &amp;lt;code&amp;gt;endpoint&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;Authorization&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;DT_ENDPOINT&amp;lt;/code&amp;gt; содержит базовый &amp;#039;&amp;#039;&amp;#039;URL-адрес&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;Ключ-АСТРОМ&amp;#039;&amp;#039;&amp;#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;br /&gt;
* &amp;lt;code&amp;gt;DT_API_TOKEN&amp;lt;/code&amp;gt; содержит токен &amp;#039;&amp;#039;&amp;#039;API&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
==== Сервисные контейнеры ====&lt;br /&gt;
В разделе &amp;lt;code&amp;gt;service&amp;lt;/code&amp;gt; мы собираем объекты приёмника, процессора и экспортёра в контейнеры для трассировок, метрик и логов. Эти контейнеры позволяют нам отправлять сигналы &amp;#039;&amp;#039;&amp;#039;OpenTelemetry&amp;#039;&amp;#039;&amp;#039; через экземпляр &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;.&lt;br /&gt;
&lt;br /&gt;
== Установка и доступ к готовым панелям управления ==&lt;br /&gt;
&lt;br /&gt;
=== Установка дашбордов ===&lt;br /&gt;
Чтобы сделать эти дашборды доступными в вашем клиенте, установите приложение &amp;#039;&amp;#039;&amp;#039;OpenTelemetry Dashboards&amp;#039;&amp;#039;&amp;#039; через Ключ-АСТРОМ.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Image4072.png|граница]]&lt;br /&gt;
&lt;br /&gt;
=== Доступ к дашбордам ===&lt;br /&gt;
При доступе к дашбордам у вас есть следующие возможности:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Кластер OpenTelemetry K8s&amp;#039;&amp;#039;&amp;#039; : комплексный обзор производительности кластера, включая узлы, модули, контейнеры, события и многое другое.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Узел OpenTelemetry K8s — Pods&amp;#039;&amp;#039;&amp;#039; : визуализирует потребление ресурсов на уровне &amp;#039;&amp;#039;&amp;#039;pod&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;Пространство имен OpenTelemetry K8s — Модули&amp;#039;&amp;#039;&amp;#039; : анализирует использование ресурсов всех модулей в определенном пространстве имен.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Пространство имен OpenTelemetry K8s — Рабочие нагрузки&amp;#039;&amp;#039;&amp;#039; : фокусируется на распределении ресурсов и производительности рабочих нагрузок в пространстве имен.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Постоянные тома OpenTelemetry K8s&amp;#039;&amp;#039;&amp;#039; : отслеживает использование и емкость заявок на постоянные тома.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Image4073.png|граница]]&lt;/div&gt;</summary>
		<author><name>IKuznetsov</name></author>
	</entry>
</feed>