Kong

Supported OS Linux Windows Mac OS

통합 버전5.1.0

개요

Agent의 Kong 점검은 총 요청, 응답 코드, 클라이언트 연결 등을 추적합니다.

또한 Kong의 Datadog 플러그인을 사용하여 DogStatsD를 사용하는 Datadog Agent를 통해 Datadog에 API, 연결 및 데이터베이스 메트릭을 보낼 수 있습니다. 자세한 내용은 Datadog 통합으로 Kong 모니터링 블로그 게시물을 읽어보세요.

설정

설치

Kong 점검은 Datadog Agent 패키지에 포함되어 있으므로 Kong 서버에 추가 설치할 필요가 없습니다.

설정

호스트

호스트에서 실행 중인 에이전트에 이 점검을 구성하는 방법:

메트릭 수집
  1. Prometheus 플러그인 활성화를 통해 OpenMetrics 메트릭이 Kong 서비스에 노출되는지 확인합니다. Agent가 Kong 메트릭을 수집하기 전에 이를 먼저 설정해야 합니다.

  2. Agent 구성 디렉터리의 루트에서 conf.d/ 폴더에 있는 kong.d/conf.yaml 파일에 이 구성 블록을 추가하여 Kong 메트릭 수집을 시작합니다. 사용 가능한 모든 구성 옵션은 샘플 kong.d/conf.yaml을 참조하세요.

    init_config:
    
    instances:
      ## @param openmetrics_endpoint - string - required
      ## OpenMetrics 형식으로 메트릭을 노출하는 URL입니다.
      #
      - openmetrics_endpoint: http://localhost:8001/metrics
    
  3. 에이전트를 재시작합니다.

참고: 점검의 현재 버전(1.17.0+)은 메트릭 수집을 위해 OpenMetrics를 사용하며 Python 3이 필요합니다. 호스트가 Python 3을 사용할 수 없거나 이 점검의 레거시 버전을 사용하려면 다음 config을 참조하세요.

로그 수집

에이전트 버전 > 6.0에서 사용 가능

Kong 액세스 로그는 NGINX에서 생성되므로 기본 위치는 NGINX 파일과 동일합니다.

  1. 로그 수집은 Datadog 에이전트에서 기본적으로 비활성화되어 있습니다. datadog.yaml 파일에서 활성화합니다.

    logs_enabled: true
    
  2. Kong 로그 수집을 시작하려면 kong.d/conf.yaml 파일에 다음 구성 블록을 추가합니다.

    logs:
      - type: file
        path: /var/log/nginx/access.log
        service: '<SERVICE>'
        source: kong
    
      - type: file
        path: /var/log/nginx/error.log
        service: '<SERVICE>'
        source: kong
    

    pathservice 파라미터 값을 변경하고 환경에 맞춰 설정합니다. 사용 가능한 모든 설정 옵션은 샘플kong.d/conf.yaml을 참조하세요.

  3. 에이전트를 재시작합니다.

컨테이너화된 환경

Prometheus 플러그인 활성화를 통해 OpenMetrics 메트릭이 Kong 서비스에 노출되는지 확인합니다. Agent 가 Kong 메트릭을 수집하기 전에 이를 먼저 구성해야 합니다. 컨테이너화된 환경의 경우 아래 파라미터 적용에 대한 지침은 자동탐지 통합 템플릿을 참조하세요.

메트릭 수집
파라미터
<INTEGRATION_NAME>kong
<INIT_CONFIG>비어 있음 또는 {}
<INSTANCE_CONFIG>{"openmetrics_endpoint": "http://%%host%%:8001/metrics"}
로그 수집

에이전트 버전 > 6.0에서 사용 가능

Datadog Agent에서는 로그 수집이 기본적으로 비활성화되어 있습니다. 활성화하려면 Kubernetes 로그 수집 문서를 참조하세요.

파라미터
<LOG_CONFIG>{"source": "kong", "service": "<SERVICE_NAME>"}

검증

Agent의 상태 하위 명령을 실행하고 Checks 섹션에서 kong을 찾습니다.

수집한 데이터

메트릭

kong.bandwidth.bytes.count
(count)
[OpenMetrics V2] (Kong v3+) The total bandwidth in bytes consumed per service/route in Kong
Shown as byte
kong.bandwidth.count
(count)
[OpenMetrics V2] (Kong < 3) The total bandwidth in bytes consumed per service/route in Kong
Shown as byte
kong.connections_accepted
(gauge)
[Legacy] Total number of accepted client connections.
Shown as connection
kong.connections_active
(gauge)
[Legacy] Current number of active client connections including Waiting connections.
Shown as connection
kong.connections_handled
(gauge)
[Legacy] Total number of handled connections. (Same as accepts unless resource limits were reached).
Shown as connection
kong.connections_reading
(gauge)
[Legacy] Current number of connections where Kong is reading the request header.
Shown as connection
kong.connections_waiting
(gauge)
[Legacy] Current number of idle client connections waiting for a request.
Shown as connection
kong.connections_writing
(gauge)
[Legacy] Current number of connections where nginx is writing the response back to the client.
Shown as connection
kong.http.consumer.status.count
(count)
[OpenMetrics V2] (Kong < 3) HTTP status codes for customer per service/route in Kong
Shown as request
kong.http.requests.count
(count)
[OpenMetrics V2] (Kong v3+) Http Status codes per service/route in Kong
Shown as request
kong.http.status
(count)
[OpenMetrics V2] (Kong < 3) HTTP status codes per service/route in Kong
Shown as request
kong.kong.latency.ms.bucket
(count)
[OpenMetrics V2] (Kong v3+) The latency of Kong specificially
Shown as millisecond
kong.kong.latency.ms.count
(count)
[OpenMetrics V2] (Kong v3+) The latency of Kong specifically
Shown as millisecond
kong.kong.latency.ms.sum
(count)
[OpenMetrics V2] (Kong v3+) The latency of Kong specifically
Shown as millisecond
kong.latency.bucket
(count)
[OpenMetrics V2] (Kong < 3) The latency added by Kong, total request time and upstream latency for each service/route in Kong
Shown as millisecond
kong.latency.count
(count)
[OpenMetrics V2] (Kong < 3) The latency added by Kong, total request time and upstream latency for each service/route in Kong
Shown as millisecond
kong.latency.sum
(count)
[OpenMetrics V2] (Kong < 3) The latency added by Kong, total request time and upstream latency for each service/route in Kong
Shown as millisecond
kong.memory.lua.shared_dict.bytes
(gauge)
[OpenMetrics V2] The allocated slabs in bytes in a shared_dict
Shown as byte
kong.memory.lua.shared_dict.total_bytes
(gauge)
[OpenMetrics V2] The total capacity in bytes of a shared_dict
Shown as byte
kong.memory.workers.lua.vms.bytes
(gauge)
[OpenMetrics V2] The allocated bytes in worker Lua VM
Shown as byte
kong.nginx.connections.total
(gauge)
[OpenMetrics V2] (Kong v3+) The number of HTTP and stream connections
Shown as connection
kong.nginx.http.current_connections
(gauge)
[OpenMetrics V2] (Kong < 3) The number of HTTP connections
Shown as connection
kong.nginx.requests.total
(gauge)
[OpenMetrics V2] (Kong v3+) The number of total Nginx connections
Shown as request
kong.nginx.stream.current_connections
(gauge)
[OpenMetrics V2] (Kong < 3) The number of stream connections
Shown as connection
kong.nginx.timers
(gauge)
[OpenMetrics v2] (Kong v2.8+) Total number of Nginx timers in Running or Pending state.
Shown as item
kong.request.latency.ms.bucket
(count)
[OpenMetrics V2] (Kong v3+) The latency added by Kong to requests
Shown as millisecond
kong.request.latency.ms.count
(count)
[OpenMetrics V2] (Kong v3+) The latency added by Kong to requests
Shown as millisecond
kong.request.latency.ms.sum
(count)
[OpenMetrics V2] (Kong v3+) The latency added by Kong to requests
Shown as millisecond
kong.session.duration.ms
(count)
[OpenMetrics V2] (Kong v3+) The duration of a Kong stream
Shown as millisecond
kong.stream.status.count
(count)
[OpenMetrics V2] The stream status codes per service/route in Kong
Shown as request
kong.total_requests
(gauge)
[Legacy] Total number of client requests.
Shown as request
kong.upstream.latency.ms.bucket
(count)
[OpenMetrics V2] (Kong v3+) The upstream latency added by Kong
Shown as millisecond
kong.upstream.latency.ms.count
(count)
[OpenMetrics V2] (Kong v3+) The upstream latency added by Kong
Shown as millisecond
kong.upstream.latency.ms.sum
(count)
[OpenMetrics V2] (Kong v3+) The upstream latency added by Kong
Shown as millisecond

이벤트

Kong 점검은 이벤트를 포함하지 않습니다.

서비스 점검

kong.can_connect
Returns CRITICAL if the Agent is unable to connect to the Kong instance. Returns OK otherwise.
Statuses: ok, critical

kong.openmetrics.health
Returns CRITICAL if the Agent is unable to connect to the OpenMetrics endpoint, otherwise returns OK.
Statuses: ok, critical

kong.datastore.reachable
Returns CRITICAL if Kong is unable to connect to the datastore, otherwise returns OK.
Statuses: ok, critical

kong.upstream.target.health
Returns CRITICAL if the target is unhealthy, otherwise returns OK.
Statuses: ok, critical

트러블슈팅

도움이 필요하신가요? Datadog 지원팀에 문의하세요.

참고 자료

PREVIEWING: brett.blue/embedded-collector-release