telemetry 구성 블록

telemetry 구성 블록 (Telemetry Configuration Block)

이 페이지는 Nomad 에이전트 구성의 telemetry 블록에서 Nomad 텔레메트리 동작을 구성하는 방법에 대한 참조 정보를 제공해요. 메트릭과 텔레메트리를 Statsite, StatsD, DataDog, Prometheus, Apica (Circonus)로 게시하도록 Nomad를 구성해요.

출처: 문서

본문

telemetry {
  publish_allocation_metrics = true
  publish_node_metrics       = true
}

이 문서 섹션은 telemetry 블록의 구성 옵션만 다뤄요. 아키텍처와 메트릭 자체를 이해하려면 Telemetry 가이드를 참고해요.

telemetry 매개변수 (Parameters)

telemetry 블록의 구성 가능한 매개변수가 많기 때문에, 이 페이지의 매개변수는 텔레메트리 제공자별로 그룹화돼요.

공통 (Common)

다음 옵션은 모든 텔레메트리 구성에 사용할 수 있어요.

  • in_memory_collection_interval (duration: 10s) — 인메모리 싱크 수집 간격을 구성해요. 이 싱크는 항상 구성되며 JSON 메트릭 API 엔드포인트를 지원해요. 이 옵션은 공격적인 수집이 필요한 디버깅이나 개발 목적에 특히 유용해요.
  • in_memory_retention_period (duration: 1m) — 인메모리 싱크 보존 기간을 구성해요. 이 싱크는 항상 구성되며 JSON 메트릭 API 엔드포인트를 지원해요. 이 옵션은 디버깅이나 개발 목적에 특히 유용해요.
  • disable_hostname (bool: false) — 게이지 값에 로컬 호스트네임을 접두사로 붙일지 여부를 지정해요.
  • collection_interval (duration: 1s) — Nomad 에이전트가 텔레메트리 데이터를 수집하는 시간 간격을 지정해요. 메트릭을 스크래핑하는 메트릭 도구(예: Prometheus)의 경우, 이 값이 모든 스크래핑 간격 값보다 작거나 같도록 보장해야 해요.
  • use_node_name (bool: false) — 게이지 값에 호스트네임 대신 노드 이름을 접두사로 붙일지 여부를 지정해요. 설정하면 disable_hostname 값을 덮어써요.
  • publish_allocation_metrics (bool: false) — Nomad가 할당의 런타임 메트릭을 게시할지 여부를 지정해요.
  • include_alloc_metadata_in_metrics (bool: false) — 할당 메타데이터를 메트릭 라벨에 포함할지 제어해요. 이 옵션을 활성화하면 높은 카디널리티 라벨이 생길 수 있어요. 또한 allowed_metadata_keys_in_metrics를 구성해야 해요.
  • allowed_metadata_keys_in_metrics (list: []) — 메트릭 게시에 포함할 메타데이터 키를 필터링해요. 기본적으로 어떤 키도 필터링하지 않으므로 모든 메타데이터가 포함돼요.
  • publish_node_metrics (bool: false) — Nomad가 노드의 런타임 메트릭을 게시할지 여부를 지정해요.
  • filter_default (bool: true) — 필터로 지정되지 않은 메트릭을 허용할지 제어해요. 기본값은 true로, 필터가 제공되지 않으면 모든 메트릭을 허용해요. 필터 없이 false로 설정하면 어떤 메트릭도 전송되지 않아요.
  • prefix_filter (list: []) — 접두사로 메트릭을 허용/차단하기 위해 적용할 필터 규칙 목록이에요. 앞의 +는 주어진 접두사의 모든 메트릭을 활성화하고, 앞의 -는 차단해요. 두 규칙이 겹치면 더 구체적인 규칙이 우선해요. 같은 접두사가 여러 번 나열되면 차단이 우선해요.
['-nomad.raft', '+nomad.raft.apply', '-nomad.memberlist']
  • disable_dispatched_job_summary_metrics (bool: false) — 작업 요약 통계를 게시할 때 Nomad가 매개변수화된 작업(parameterized job)에서 디스패치된 작업을 무시할지 여부를 지정해요. 각 작업은 요약 통계 추적에 작은 메모리 오버헤드가 있으므로, 많은 양의 작업을 디스패치할 때 이 통계를 메모리와 맞바꾸는 것을 원할 때가 있어요.
  • disable_quota_utilization_metrics (bool: false) — Nomad가 쿼터 사용량(Quant Enterprise 기능)에 대한 메트릭을 게시할지 여부를 지정해요. 각 쿼터 사용량 확인은 Nomad 상태 저장소에 대한 상대적으로 비싼 확인이 필요하므로, 네임스페이스와 쿼터가 많은 사용자는 이 메트릭을 비활성화하고 싶을 수 있어요.
  • disable_allocation_hook_metrics (bool: false) — Nomad 클라이언트가 할당과 태스크 훅 관련 메트릭을 게시할지 여부를 지정해요.

statsite

이 텔레메트리 매개변수들은 Statsite에 적용돼요.

  • statsite_address (string: "") — 메트릭 데이터를 전달할 statsite 서버의 주소를 지정해요.
telemetry {
  statsite_address = "statsite.company.local:8125"
}

statsd

이 텔레메트리 매개변수들은 StatsD에 적용돼요.

  • statsd_address (string: "") — 메트릭을 전달할 statsd 서버의 주소를 지정해요.
telemetry {
  statsd_address = "statsd.company.local:8125"
}

datadog

이 텔레메트리 매개변수들은 DataDog에 적용돼요.

  • datadog_address (string: "") — 메트릭을 전달할 DataDog statsd 서버의 주소를 지정해요.
  • datadog_tags (list: []) — DogStatsD로 전송되는 모든 텔레메트리 패킷에 추가될 전역 태그 목록을 지정해요. 각 문자열이 "my_tag_name:my_tag_value"처럼 보이는 문자열 목록이에요.
telemetry {
  datadog_address = "dogstatsd.company.local:8125"
  datadog_tags    = ["my_tag_name:my_tag_value"]
}

prometheus

이 텔레메트리 매개변수들은 Prometheus에 적용돼요.

  • prometheus_metrics (bool: false) — 에이전트가 /v1/metrics?format=prometheus에서 Prometheus 형식의 메트릭을 제공할지 여부를 지정해요. Nomad의 Prometheus 클라이언트는 스크래핑되지 않으면 메트릭을 메모리에 보관하므로, Prometheus로 메트릭을 수집하지 않는다면 이 필드를 활성화하지 않아야 해요.

circonus (Apica)

이 텔레메트리 매개변수들은 Apica(구 Circonus)에 적용돼요. Apica는 2024년에 Circonus를 인수했어요.

  • circonus_api_token (string: "") — 체크를 생성/관리하는 데 사용되는 유효한 Circonus API 토큰을 지정해요. 제공되면 메트릭 관리가 활성화돼요.
  • circonus_api_app (string: "nomad") — API 토큰과 연관된 유효한 앱 이름을 지정해요.
  • circonus_api_url (string: "https://api.circonus.com/v2") — Circonus API에 접촉하는 데 사용할 기본 URL을 지정해요.
  • circonus_submission_interval (string: "10s") — 메트릭이 Circonus에 제출되는 간격을 지정해요.
  • circonus_submission_url (string: "") — 이전에 생성된 HTTPTRAP 체크의 Check API 객체에서 check.config.submission_url 필드를 지정해요.
  • circonus_check_id (string: "") — 이전에 생성된 HTTPTRAP 체크의 Check ID(체크 번들이 아니라)를 지정해요. Check API 객체의 check._cid 필드의 숫자 부분이에요.
  • circonus_check_force_metric_activation (bool: false) — 이미 존재하지만 현재 활성화되지 않은 메트릭의 강제 활성화를 지정해요. 체크 관리가 활성화되면 기본 동작은 새 메트릭이 나타날 때 추가하는 것이에요. 메트릭이 체크에 이미 존재하면 활성화되지 않아요. 이 설정은 그 동작을 덮어써요.
  • circonus_check_instance_id (string: "<hostname>:<application>") — 이 인스턴스에서 나오는 메트릭을 고유하게 식별하는 역할을 해요. 인프라 내에서 이동하는 일시적(transient) 또는 임시(ephemeral) 인스턴스의 메트릭 연속성을 유지하는 데 사용할 수 있어요. 기본적으로 hostname:application 이름(예: "host123:nomad")으로 설정돼요.
  • circonus_check_search_tag (string: <service>:<application>) — 인스턴스 ID와 함께 사용했을 때 Submission URL이나 Check ID가 모두 제공되지 않을 때 검색 결과를 좁히는 데 도움을 주는 특수 태그를 지정해요. 기본적으로 service:app(예: "service:nomad")으로 설정돼요.
  • circonus_check_display_name (string: "") — 체크 생성 시 체크에 부여할 이름을 지정해요. 이 이름은 Circonus UI의 Checks 목록에 표시돼요.
  • circonus_check_tags (string: "") — 체크 생성 시 체크에 추가할 추가 태그의 쉼표로 구분된 목록이에요.
  • circonus_broker_id (string: "") — 새 체크를 만들 때 사용할 특정 Circonus Broker의 ID를 지정해요. Broker API 객체의 broker._cid 필드의 숫자 부분이에요. 메트릭 관리가 활성화되고 Submission URL이나 Check ID가 모두 제공되지 않으면 Instance ID와 Search Tag를 사용해 기존 체크 검색을 시도해요. 찾지 못하면 새 HTTPTRAP 체크가 생성돼요. 기본적으로 임의의 Enterprise Broker 또는 기본 Circonus Public Broker가 선택돼요.
  • circonus_broker_select_tag (string: "") — Broker ID가 제공되지 않을 때 Circonus Broker를 선택하는 데 사용할 특수 태그를 지정해요. 가장 좋은 용도는 이 특정 인스턴스가 실행되는 위치(예: 특정 지리적 위치나 데이터센터, dc:sfo)에 따라 어떤 브로커를 사용해야 하는지 힌트로 사용하는 것이에요.

더 알아보기 (Learn more)