istio.io/content/uk/docs/tasks/observability/metrics/telemetry-api/index.md

7.4 KiB
Raw Blame History

title description weight keywords owner test
Налаштування метрик Istio за допомогою Telemetry API Це завдання показує, як налаштувати метрики Istio за допомогою Telemetry API. 10
telemetry
metrics
customize
istio/wg-policies-and-telemetry-maintainers yes

Telemetry API вже деякий час є в Istio як API першокласного рівня. Раніше користувачам потрібно було налаштовувати метрики в розділі telemetry конфігурації Istio.

Це завдання показує, як налаштувати метрики, які Istio генерує за допомогою Telemetry API.

Перед тим як почати

Встановіть Istio у вашому кластері та розгорніть застосунок.

Telemetry API не може працювати разом з EnvoyFilter. Для отримання додаткової інформації ознайомтесь з цим тікетом.

  • Починаючи з версії Istio 1.18, EnvoyFilter для Prometheus не буде стандартно встановлений, і замість цього використовується meshConfig.defaultProviders для його активації. Telemetry API слід використовувати для подальшого налаштування конвеєра телеметрії.

  • Для версій Istio до 1.18 слід встановити з наступною конфігурацією IstioOperator:

    {{< text yaml >}} apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: values: telemetry: enabled: true v2: enabled: false {{< /text >}}

Перевизначення метрик

Розділ metrics надає значення для метрик у вигляді виразів та дозволяє видаляти або перевизначати наявні визначення метрик. Ви можете змінити стандартні визначення метрик за допомогою tags_to_remove або шляхом повторного визначення.

  1. Видаліть теги grpc_response_status з метрики REQUEST_COUNT

    {{< text yaml >}} apiVersion: telemetry.istio.io/v1 kind: Telemetry metadata: name: remove-tags namespace: istio-system spec: metrics: - providers: - name: prometheus overrides: - match: mode: CLIENT_AND_SERVER metric: REQUEST_COUNT tagOverrides: grpc_response_status: operation: REMOVE {{< /text >}}

  2. Додайте власні теґи для метрики REQUEST_COUNT

    {{< text yaml >}} apiVersion: telemetry.istio.io/v1 kind: Telemetry metadata: name: custom-tags namespace: istio-system spec: metrics: - overrides: - match: metric: REQUEST_COUNT mode: CLIENT tagOverrides: destination_x: value: filter_state.upstream_peer.app - match: metric: REQUEST_COUNT mode: SERVER tagOverrides: source_x: value: filter_state.downstream_peer.app providers: - name: prometheus {{< /text >}}

Вимкнення метрик

  1. Вимкніть усі метрики, виконавши такі налаштування:

    {{< text yaml >}} apiVersion: telemetry.istio.io/v1 kind: Telemetry metadata: name: remove-all-metrics namespace: istio-system spec: metrics: - providers: - name: prometheus overrides: - disabled: true match: mode: CLIENT_AND_SERVER metric: ALL_METRICS {{< /text >}}

  2. Вимкніть метрику REQUEST_COUNT за допомогою наступних налаштувань:

    {{< text yaml >}} apiVersion: telemetry.istio.io/v1 kind: Telemetry metadata: name: remove-request-count namespace: istio-system spec: metrics: - providers: - name: prometheus overrides: - disabled: true match: mode: CLIENT_AND_SERVER metric: REQUEST_COUNT {{< /text >}}

  3. Вимкніть метрику REQUEST_COUNT для клієнта, виконавши такі налаштування:

    {{< text yaml >}} apiVersion: telemetry.istio.io/v1 kind: Telemetry metadata: name: remove-client namespace: istio-system spec: metrics: - providers: - name: prometheus overrides: - disabled: true match: mode: CLIENT metric: REQUEST_COUNT {{< /text >}}

  4. Вимкніть метрику REQUEST_COUNT для сервера, виконавши такі налаштування:

    {{< text yaml >}} apiVersion: telemetry.istio.io/v1 kind: Telemetry metadata: name: remove-server namespace: istio-system spec: metrics: - providers: - name: prometheus overrides: - disabled: true match: mode: SERVER metric: REQUEST_COUNT {{< /text >}}

Перевірка результатів

Надішліть трафік до мережі. Для застосунку Bookinfo відвідайте http://$GATEWAY_URL/productpage у вашому вебоглядачі або виконайте наступну команду:

{{< text bash >}} $ curl "http://$GATEWAY_URL/productpage" {{< /text >}}

{{< tip >}} $GATEWAY_URL — це значення, встановлене в застосунку Bookinfo. {{< /tip >}}

Використовуйте наступну команду для перевірки того, що Istio генерує дані для ваших нових або змінених метрик:

{{< text bash >}} istioctl x es "(kubectl get pod -l app=productpage -o jsonpath='{.items[0].metadata.name}')" -oprom | grep istio_requests_total | grep -v TYPE | grep -v 'reporter="destination"' {{< /text >}}

{{< text bash >}} istioctl x es "(kubectl get pod -l app=details -o jsonpath='{.items[0].metadata.name}')" -oprom | grep istio_requests_total {{< /text >}}

Наприклад, у виводі знайдіть метрику istio_requests_total і перевірте, чи містить вона вашу нову розмірність.

{{< tip >}} Може знадобитися невеликий проміжок часу, щоб проксі почали застосовувати конфігурацію. Якщо метрику не отримано, ви можете повторити спробу надсилання запитів після короткої паузи та знову перевірити метрику. {{< /tip >}}