이 페이지에서는 Media CDN용 Service Extensions 플러그인으로 Cloud Logging 및 Cloud Monitoring을 구성하고 사용하는 방법을 보여줍니다.
로깅
이 섹션에서는 Media CDN 플러그인의 Service Extensions 로그와 로그 메시지의 정보를 보고 상호 연결하는 방법을 설명합니다.
로그 메시지
Service Extensions는 플러그인 실행 중에 로그 메시지 생성을 지원합니다. 로그 기록은 기본적으로 사용 중지되어 있습니다. 플러그인의 로그를 기록하려면 플러그인을 만들거나 업데이트할 때 사용 설정하세요.
플러그인 로그 레코드에는 다음과 같은 컨텍스트 정보가 주석으로 추가됩니다.
- 타임스탬프, 로그 수준과 같은 표준 로그 주석
- 메시지를 생성한 플러그인의 ID
- 로그 메시지가 생성된 플러그인 콜백
- 로그 메시지가 연결된 요청 로그를 확인하는 데 도움이 되는
requestId추적 식별자
Service Extensions와 관련된 로그는 다음 카테고리 중 하나에 있습니다.
플러그인 로그 메시지
Rust의
info!(...), Go의proxywasm.LogInfo(...)또는 C++의LOG_INFO와 같은 로깅 호출에 의해 생성됩니다. Service Extensions는 이러한 로그 메시지를 Cloud Logging으로 내보냅니다. 요청 및 응답 헤더와 플러그인이 수행한 작업을 로깅할 수 있습니다.networkservices.googleapis.com서비스를 사용하여 이러한 메시지를 볼 수 있습니다.Media CDN 로그 메시지
연결된 Wasm 작업이 있는
EdgeCacheService리소스에 대한 HTTP 요청의 Media CDN 로그 메시지입니다. 이러한 로그 메시지는 Media CDN 로그 항목으로edgecache.googleapis.com서비스에서 볼 수 있습니다.
플러그인 로깅 사용 설정
Service Extensions는 플러그인 실행 중에 로그 메시지 생성을 지원합니다. 로그 기록은 기본적으로 사용 중지되어 있습니다.
플러그인의 로그를 기록하려면 플러그인을 만들거나 업데이트할 때 사용 설정하세요.
기존 플러그인의 로깅을 사용 설정하려면
gcloud beta service-extensions wasm-plugins update 명령어를 사용합니다.
gcloud beta service-extensions wasm-plugins update WASM_PLUGIN \
--log-config=[LOG_CONFIG,...]
다음을 바꿉니다.
WASM_PLUGIN: 플러그인의 ID 또는 정규화된 이름LOG_CONFIG: 플러그인의 로깅 옵션 로깅을 사용 설정하려면enable옵션을true로 설정합니다. 그런 다음 다음 세부정보를 지정합니다.sample-rate: 활동 로그의 샘플링 레이트(값은0과1사이) 값0은 로그 메시지가 저장되지 않음을 나타냅니다. 기본값1은 모든 로그 메시지 가 저장됨을 나타냅니다.0.0과1.0사이의 부동 소수점 값은 로그 메시지의 비율이 저장됨을 나타냅니다.min-log-level: Cloud Logging으로 내보낼 플러그인 로그 메시지의 최소 심각도 수준 기본값은INFO입니다.
로그를 보려면 Google Cloud 콘솔에서 로그 탐색기 페이지로 이동합니다.
로그 메시지 보기
로그 탐색기에서 쿼리를 빌드 하여 로그를 볼 수 있습니다.
플러그인 로그를 독립형 Service Extensions 로그로 볼 수 있습니다. 이 뷰에서, 각 플러그인 로그 메시지는 자체 로그 레코드에 기록되며 요청 로그 정보와 자동으로 연결되지 않습니다.
이러한 로그 메시지는 리소스 유형 networkactions.googleapis.com/WasmPluginVersion이 있는 networkactions.googleapis.com/wasm_plugin_activity 로그에 있습니다.
시스템에서 이 로그에 정보 로그 메시지를 추가할 수도 있습니다.
예를 들어 플러그인 호출이 CPU 또는 메모리 한도를 초과할 때 플러그인 오류가 발생하면 ERROR 심각도 메시지가 로깅됩니다. 이러한
메시지는 오류 보기 및 필터링에서도 볼 수 있습니다.
로그 탐색기에서 상응하는 Media CDN 요청 로그와 상호 연결된 로그 메시지를 볼 수도 있습니다. 요청 로그를 보는 동안 요청 로그 항목을 펼치면 요청과 관련된 플러그인 로그가 요청 로그 아래에 중첩되어 표시됩니다. 이 뷰를 사용하면 연결된 요청의 컨텍스트에서 플러그인 로그를 이해할 수 있습니다.
로그 샘플
샘플 Service Extensions 로그 항목을 고려해 보세요. message 값은 플러그인의 LOG_INFO 호출에 전달됩니다. severity 값은 플러그인 로그 호출에 사용된 로그 수준에 따라 다릅니다. labels 섹션에서 API의 값은 HTTP_REQUEST_HEADER입니다. 이는 로깅된 작업이 on_http_request_headers 플러그인 콜백임을 나타냅니다.
{
"insertId": "65224aac-0000-24bd-a0e1-582429bd544c@a1",
"jsonPayload": {
"@type": "type.googleapis.com/google.cloud.networkactions.logging.v1.WasmPluginLogEntry",
"metroIataCode": "ber",
"proxyRegionCode": "DE",
"message": "[add_header_plugin.cc:26]::onRequestHeaders() AddHeaderStreamContext::onRequestHeaders called",
"requestId": "effc0311-6716-431b-9e2a-7586835fdff1"
},
"resource": {
"type": "networkactions.googleapis.com/WasmPluginVersion",
"labels": {
"plugin_version": "prod-1",
"resource_container": "projects/123456789",
"location": "global",
"plugin_name": "add-headers-plugin-prod-resource"
}
},
"timestamp": "2023-05-10T03:05:43.317015458Z",
"severity": "INFO",
"labels": {
"networkactions.googleapis.com/operation": "HTTP_REQUEST_HEADERS"
},
"logName": "projects/123456789/logs/networkactions.googleapis.com%2Fwasm_plugin_activity",
"trace": "projects/123456789/traces/effc0311-6716-431b-9e2a-7586835fdff1",
"receiveTimestamp": "2023-05-10T03:05:44.207265284Z"
}
requestId 및 trace 값은 동일합니다.
{
"insertId": "6c95cc54-0000-26ba-ba73-f403043c328c@a1",
"jsonPayload": {
"cacheMode": "USE_ORIGIN_HEADERS",
"@type": "type.googleapis.com/google.cloud.edgecache.v1.EdgeCacheLogEntry",
"wasmAction": "add-headers-action-prod-resource",
"cacheKeyFingerprint": "f04d02bb12f2e79e",
"proxyStatus": "Google-Edge-Cache",
"clientCity": "Erlangen",
"clientAsn": "8881",
"origin": "example-origin",
"cacheId": "ber",
"tlsVersion": "NONE",
"latency": "0.002840304s",
"originIp": "142.250.145.128",
"requestId": "effc0311-6716-431b-9e2a-7586835fdff1",
"clientRegionCode": "DE",
"originalRequestId": "7656c418-df7c-4ae5-9db5-4f247ec5a82c",
"httpTtfb": "0.002814903s",
"metroIataCode": "BER",
"proxyRegionCode": "DE",
"cacheStatus": "hit"
},
"httpRequest": {
"requestMethod": "GET",
"requestUrl": "https://example.com/image.jpg",
"requestSize": "1631",
"status": "200",
"responseSize": "402907",
"userAgent": "Wtrace",
"remoteIp": "2001:1438:1:19::5",
"protocol": "HTTP/1.1"
},
"resource": {
"type": "edgecache.googleapis.com/EdgeCacheRouteRule",
"labels": {
"location": "global",
"route_destination": "projects/123456789/locations/global/edgeCacheOrigins/example-origin",
"matched_path": "/turing/",
"route_type": "ORIGIN",
"path_matcher_name": "routes",
"resource_container": "projects/123456789",
"service_name": "example-service"
}
},
"timestamp": "2023-05-10T03:05:43.321347304Z",
"logName": "projects/bdn-prober/logs/edgecache.googleapis.com%2Fedge_cache_request",
"trace": "projects/1069774196212/traces/effc0311-6716-431b-9e2a-7586835fdff1",
"receiveTimestamp": "2023-05-10T03:05:49.919781008Z"
}
제한사항
플러그인은 클라이언트 HTTP 요청당 최대 16KiB의 페이로드 데이터를 로깅할 수 있습니다. 이 양은 지정된 HTTP 요청과 연결된 여러 로깅 호출로 나뉩니다. 이 한도는 로그 메시지 텍스트에만 적용되며 Service Extensions에서 로그 레코드에 추가한 추가 메타데이터에는 적용되지 않습니다.
예를 들어 on_http_request_headers 콜백이 각각 4KiB 메시지가 포함된 로깅 호출을 두 번 수행한 다음 on_http_response_headers 콜백이 동일한 HTTP 요청에 대해 각각 4KiB 메시지가 포함된 로깅 호출을 세 번 시도하면 세 번째 로깅 메시지가 삭제됩니다. 삭제된 플러그인 생성 로그 메시지 수를 기록하기 위해 로그 메시지가 추가됩니다.
모니터링
이 섹션에서는 Cloud Monitoring 대시보드를 사용하여 Media CDN 플러그인의 Service Extensions 측정항목을 보는 방법을 설명합니다.
Service Extensions 측정항목 유형에 대한 자세한 내용은 Google Cloud 측정항목 페이지를 참조하세요.
Service Extensions의 Monitoring 대시보드 보기
Service Extensions의 Monitoring 대시보드를 보려면 다음 안내를 따르세요.
- 콘솔에서 Service Extensions 페이지로 이동합니다. Google Cloud
- 플러그인 탭을 클릭합니다.
- 플러그인 이름을 클릭합니다.
- 플러그인 세부정보 페이지에서 모니터링 탭을 클릭합니다.
- 플러그인 수명 주기 작업의 측정항목을 보려면
작업 필터 목록에서 값을 선택합니다. 기본적으로
HTTP request header및HTTP response header값이 선택됩니다. - 특정 플러그인 버전의 측정항목을 보려면 플러그인 버전 필터 목록에서 값을 선택합니다. 기본적으로 모든 버전의 측정항목이 표시됩니다.
- 데이터를 보려는 기간을 변경하려면 시간 선택기에서 사전 정의된 기간을 선택하거나 커스텀 을 클릭하고 시작 시간과 종료 시간을 정의합니다. 기본적으로 선택기는
1 day로 설정됩니다.
모니터링 페이지의 측정항목 차트에는 플러그인 성능을 모니터링하는 데 도움이 되는 정보가 표시됩니다.
Service Extensions의 플러그인 측정항목
Service Extensions 관점에서 플러그인의 다음 측정항목을 모니터링할 수 있습니다. 이러한 측정항목에는 프리픽스
networkactions.googleapis.com/wasm_plugin/이 있습니다. 프리픽스는 표의 항목에서 생략됩니다.
| 측정항목 유형 | 표시 이름
종류, 유형, 단위 설명 |
|---|---|
invocation_count
|
Wasm 플러그인 호출 수
DELTA, INT64, 1
선택한 기간 동안 플러그인이 호출된 횟수입니다. 각 플러그인 콜백 호출은 별도의 플러그인 호출로 계산됩니다. |
invocation_latencies
|
Wasm 플러그인 호출 지연 시간
DELTA, DISTRIBUTION, us
플러그인의 로컬 실행 시간(밀리초)입니다. 측정항목에는 각 콜백의 라벨로 구분된 항목이 포함됩니다. |
cpu/usage_times
|
Wasm 플러그인 정규화된 CPU 사용량
DELTA, DISTRIBUTION, us{CPU}
플러그인 호출의 CPU 사용 시간(마이크로초)입니다. |
memory/bytes_used
|
Wasm 플러그인 메모리 사용량
GAUGE, DISTRIBUTION, By
Wasm 플러그인 VM이 할당한 총 메모리(바이트)입니다. |
Media CDN의 플러그인 측정항목
Media CDN 관점에서 플러그인의 다음 측정항목을 모니터링할 수 있습니다. 측정항목 유형 문자열은 프리픽스 edgecache.googleapis.com/edge_cache_route_rule/network_actions/를 따릅니다.
프리픽스는 표의 항목에서 생략됩니다.
| 측정항목 유형 | 표시 이름
종류, 유형, 단위 설명 |
|---|---|
wasm_action_invocation_count
|
Service Extensions 호출 수
DELTA, INT64, 1
선택한 기간 동안 Media CDN에서 처리한 Service Extensions 호출 수입니다. |
wasm_action_invocation_latencies
|
Service Extensions 호출 지연 시간
DELTA, DISTRIBUTION, us
Media CDN에서 플러그인을 디스패치하고 실행하는 데 걸리는 총 시간(밀리초)입니다. 측정항목에는 라벨로 구분된 Service Extensions 콜백 항목이 포함됩니다. |