metrics

/usr/local/m2/setting.json 다음 영역에 대해 기술한다.

{
  "env": {
    "metrics": {
      ...
    }
  }
}

export

메트릭 노출 정책을 구성한다.

white

설정된 메트릭만을 노출한다.

"white": {
  "enable": true,
  "list": [
    "m2_cache_tcp_client_instant_miss",
    "m2_cache_tcp_client_refresh_miss",
    "m2_cache_tcp_deny",
    "m2_cache_tcp_error",
    "m2_cache_tcp_hit",
    "m2_cache_tcp_hitratio_requests",
    "m2_cache_tcp_ims_hit",
    "m2_cache_tcp_miss",
    "m2_cache_tcp_negative_hit",
    "m2_cache_tcp_redirect_hit",
    "m2_cache_tcp_refresh_fail_hit",
    "m2_cache_tcp_refresh_hit",
    "m2_cache_tcp_refresh_miss",
    "m2_dims_commands",
    "m2_dims_complete",
    "m2_dims_complete_seconds",
    "m2_dims_dest_format",
    "m2_dims_dest_height_total",
    "m2_dims_dest_size_bytes",
    "m2_dims_fail",
    "m2_dims_init_seconds",
    "m2_dims_requests",
    "m2_dims_src_format",
    "m2_dims_src_height_total",
    "m2_dims_src_size_bytes",
    "m2_dims_wait_queue",
    "m2_http_backend_receive_size_bytes",
    "m2_http_backend_requests",
    "m2_http_backend_responses",
    "m2_http_backend_send_size_bytes",
    "m2_http_backend_tx_abort",
    "m2_http_backend_tx_complete",
    "m2_http_backend_tx_complete_seconds",
    "m2_http_backend_tx_ttfb_seconds",
    "m2_http_frontend_receive_size_bytes",
    "m2_http_frontend_requests",
    "m2_http_frontend_requests_bypass",
    "m2_http_frontend_responses",
    "m2_http_frontend_send_size_bytes",
    "m2_http_frontend_tx_abort",
    "m2_http_frontend_tx_complete",
    "m2_http_frontend_tx_complete_seconds",
    "m2_http_frontend_tx_ttfb_seconds",
    "m2_pagefx_complete",
    "m2_pagefx_complete_seconds",
    "m2_pagefx_fail",
    "m2_pagefx_gif2video_dest_size_bytes",
    "m2_pagefx_gif2video_match",
    "m2_pagefx_gif2video_src_size_bytes",
    "m2_pagefx_isolstyle_resource",
    "m2_pagefx_optimg_dest_size_bytes",
    "m2_pagefx_optimg_match",
    "m2_pagefx_optimg_maxwidth",
    "m2_pagefx_optimg_src_size_bytes",
    "m2_pagefx_optimg_usemap",
    "m2_pagefx_requests",
    "m2_pagefx_splitimg_match",
    "m2_pagefx_splitimg_produce",
    "m2_pagefx_wait_queue",
    "m2_transcoder_complete",
    "m2_transcoder_complete_seconds",
    "m2_transcoder_dest_size_bytes",
    "m2_transcoder_fail",
    "m2_transcoder_perform_seconds",
    "m2_transcoder_presets",
    "m2_transcoder_requests",
    "m2_transcoder_src_format",
    "m2_transcoder_src_height_total",
    "m2_transcoder_src_size_bytes",
    "m2_transcoder_wait_queue"
  ]
}

enable (기본: true)

  • false 모든 메트릭을 노출한다.

  • true (기본) 노출할 메트릭을 선택한다.

list

노출할 메트릭 리스트. 간단한 * 표현만 지원한다.

동작방식과 예제는 아래과 같다.

  • 일치하는 메트릭 이름만 명시된다면 관련 메트릭이 모두 노출된다.

    # m2_http_frontend_tx_ttfb_seconds_bucket
    m2_http_frontend_tx_ttfb_seconds_bucket{vhost="foo.com", le="0.001"} 0
    m2_http_frontend_tx_ttfb_seconds_bucket{vhost="foo.com", le="0.005"} 0
    m2_http_frontend_tx_ttfb_seconds_bucket{vhost="foo.com", le="0.01"} 0
    m2_http_frontend_tx_ttfb_seconds_bucket{vhost="foo.com", le="0.05"} 0
    m2_http_frontend_tx_ttfb_seconds_bucket{vhost="foo.com", le="0.1"} 0
    m2_http_frontend_tx_ttfb_seconds_bucket{vhost="foo.com", le="0.5"} 0
    m2_http_frontend_tx_ttfb_seconds_bucket{vhost="foo.com", le="1"} 0
    m2_http_frontend_tx_ttfb_seconds_bucket{vhost="foo.com", le="5"} 0
    m2_http_frontend_tx_ttfb_seconds_bucket{vhost="foo.com", le="10"} 0
    m2_http_frontend_tx_ttfb_seconds_bucket{vhost="foo.com", le="+Inf"} 0
    m2_http_frontend_tx_ttfb_seconds_sum{vhost="foo.com"} 0.000000
    m2_http_frontend_tx_ttfb_seconds_count{vhost="foo.com"} 0
    
  • 함수 단위로 메트릭을 노출한다.

    # m2_http_backend_*
    m2_http_backend_send_size_bytes{host="foo.com"} 0
    m2_http_backend_sessions_establish{host="foo.com"} 0
    m2_http_backend_tx_active{host="foo.com"} 0
    m2_http_backend_tx_abort_total{host="foo.com"} 0
    m2_http_backend_tx_complete_total{host="foo.com"} 0
    
  • 특정 가상호스트 메트릭을 모두 노출한다.

    # *vhost=\"foo.com\"*
    m2_http_frontend_send_size_bytes{vhost="foo.com"} 0
    m2_dims_wait_queue{vhost="foo.com"} 0
    m2_pagefx_complete_seconds{vhost="foo.com"} 0
    
  • 특정 가상호스트가 제공하는 함수 메트릭만을 노출한다.

    # m2_http_*=\"foo.com\"*
    m2_http_frontend_send_size_bytes{vhost="foo.com"} 0
    m2_http_backend_receive_size_bytes{host="foo.com"} 0
    

chaining

메트릭 중 함수체인 호출에 영향을 주는 메트릭을 구성한다.

throttling

유입조절에 필요한 기준 지표를 설정한다.

cpu

CPU 사용량 측정 기준을 설정한다.

# chaining.throttling

"cpu": {
  "duration": "15s"
}
duration (기준: 15초)

설정된 시간동안의 평균 CPU 사용량을 유입조절의 기준으로 한다.

Hint

# server.xml - <Server><Cache><Performance>

<ThrottlingCpuDuration>15</ThrottlingCpuDuration>