Métricas del servidor de API Kubernetes

Supported OS Linux Windows Mac OS

Versión de la integración7.0.0

Dashboard del servidor de API de Kubernetes

Información general

Este check monitoriza Kube_apiserver_metrics.

Configuración

Instalación

El check Kube_apiserver_metrics está incluido en el paquete del Datadog Agent, por lo que no necesitas instalar nada más en tu servidor.

Configuración

Si tu clúster de Kubernetes tiene nodos maestros y está ejecutando un pod y un contenedor para la imagen kube-apiserver, el Datadog Agent detecta automáticamente este pod y configura la integración relativa a tu archivo kube_apiserver_metrics.d/auto_conf.yaml.

Sin embargo, si usas una distribución de Kubernetes gestionada como GKE, EKS o AKS, es posible que no tengas un pod kube-apiserver en ejecución para que el Agent lo detecte.

En este caso, puedes configurar la integración con el servicio kubernetes en el espacio de nombres default.

ParámetroValor
<INTEGRATION_NAME>["kube_apiserver_metrics"]
<INIT_CONFIG>[{}]
<INSTANCE_CONFIG>[{"prometheus_url": "https://%%host%%:%%port%%/metrics"}]

Puedes revisar todas las opciones de configuración disponibles en kube_apiserver_metrics.yaml.

Servicio de anotaciones

Puedes anotar el servicio de Kubernetes en tu espacio de nombres default con lo siguiente:

ad.datadoghq.com/endpoints.checks: |
  {
    "kube_apiserver_metrics": {
      "instances": [
        {
          "prometheus_url": "https://%%host%%:%%port%%/metrics"
        }
      ]
    }
  }
annotations:
  ad.datadoghq.com/endpoints.check_names: '["kube_apiserver_metrics"]'
  ad.datadoghq.com/endpoints.init_configs: '[{}]'
  ad.datadoghq.com/endpoints.instances:
    '[{ "prometheus_url": "https://%%host%%:%%port%%/metrics"}]'

A continuación, el Datadog Cluster Agent programa los checks de cada endpoint en Datadog Agent(s).

Archivo local

También puedes ejecutar el check configurando los endpoints directamente en el archivo kube_apiserver_metrics.yaml, en la carpeta conf.d/ de la raíz del directorio de configuración del Agent para enviarlo como un Check de clúster.

Nota: Debes añadir cluster_check: true a tu archivo de configuración si usas un archivo local o ConfigMap para configurar los checks de clúster.

Proporciona una configuración a tu Cluster Agent para configurar un check de clúster:

clusterAgent:
  confd:
    kube_apiserver_metrics.yaml: |-
      advanced_ad_identifiers:
        - kube_endpoints:
            name: "kubernetes"
            namespace: "default"
      cluster_check: true
      init_config:
      instances:
        - prometheus_url: "https://%%host%%:%%port%%/metrics"
spec:
#(...)
  override:
    clusterAgent:
      extraConfd:
        configDataMap:
          kube_apiserver_metrics.yaml: |-
            advanced_ad_identifiers:
              - kube_endpoints:
                  name: "kubernetes"
                  namespace: "default"
            cluster_check: true
            init_config:
            instances:
              - prometheus_url: "https://%%host%%:%%port%%/metrics"

Estas configuraciones hacen que el Agent realice una solicitud al servicio kubernetes en el espacio de nombres default en sus direcciones IP de endpoint y puerto definidos.

Validación

Ejecuta el subcomando de estado del Agent y busca kube_apiserver_metrics en la sección Checks.

Datos recopilados

Métricas

kube_apiserver.APIServiceRegistrationController_depth
(gauge)
La profundidad actual de la cola de trabajo: APIServiceRegistrationController
kube_apiserver.admission_controller_admission_duration_seconds.count
(count)
El histograma de latencia del controlador de admisión en segundos identificado por nombre y desglosado para cada operación y recurso de API y recuento de tipo (validar o admitir)
kube_apiserver.admission_controller_admission_duration_seconds.sum
(gauge)
El histograma de latencia del controlador de admisión en segundos identificado por nombre y desglosado para cada operación y recurso de API y tipo (validar o admitir)
Se muestra en segundos
kube_apiserver.admission_step_admission_latencies_seconds.count
(count)
El histograma de latencia de subpaso de admisión desglosado para cada operación y recurso de API y recuento de tipo de paso (validar o admitir).
kube_apiserver.admission_step_admission_latencies_seconds.sum
(gauge)
La latencia del subpaso de admisión desglosada para cada operación y recurso de API y tipo de paso (validar o admitir)
Se muestra en segundos
kube_apiserver.admission_step_admission_latencies_seconds_summary.count
(count)
El resumen de latencia del subpaso de admisión desglosado para cada operación y recurso de API y recuento de tipo de paso (validar o admitir)
kube_apiserver.admission_step_admission_latencies_seconds_summary.quantile
(gauge)
El resumen de latencia del subpaso de admisión desglosado para cada operación y recurso de la API y cuantil del tipo de paso (validar o admitir)
Se muestra como segundo
kube_apiserver.admission_step_admission_latencies_seconds_summary.sum
(gauge)
El resumen de latencia del subpaso de admisión desglosado para cada operación y recurso de API y tipo de paso (validar o admitir)
Se muestra en segundos
kube_apiserver.admission_webhook_admission_latencies_seconds.count
(count)
La latencia del webhook de admisión identificada por nombre y desglosada para cada operación y recurso de API y recuento de tipo (validar o admitir)
kube_apiserver.admission_webhook_admission_latencies_seconds.sum
(gauge)
La latencia del webhook de admisión identificada por nombre y desglosada para cada operación y recurso de API y tipo (validar o admitir)
Se muestra en segundos
kube_apiserver.aggregator_unavailable_apiservice
(gauge)
Indicador de APIServices marcado como no disponible desglosado por nombre de APIService (alfa; Kubernetes 1.14+)
kube_apiserver.apiserver_admission_webhook_fail_open_count
(gauge)
Recuento de fallos abiertos del webhook de admisión, identificados por nombre y desglosados para cada tipo de admisión (validación o mutación).
kube_apiserver.apiserver_admission_webhook_fail_open_count.count
(count)
Recuento de fallos abiertos del webhook de admisión, identificados por nombre y desglosados para cada tipo de admisión (validación o mutación).
kube_apiserver.apiserver_admission_webhook_request_total
(gauge)
Total de solicitudes del webhook de admisión, identificadas por nombre y desglosadas por cada tipo de admisión (alfa; Kubernetes 1.23+)
kube_apiserver.apiserver_admission_webhook_request_total.count
(count)
Total de solicitudes del webhook de admisión, identificadas por nombre y desglosadas por cada tipo de admisión (alfa; Kubernetes 1.23+)
kube_apiserver.apiserver_dropped_requests_total
(gauge)
Número acumulado de solicitudes abandonadas con la respuesta “Inténtalo de nuevo más tarde”
Se muestra como solicitud
kube_apiserver.apiserver_dropped_requests_total.count
(count)
El recuento monótono de solicitudes abandonadas con la respuesta “Inténtalo de nuevo más tarde”
Se muestra como solicitud
kube_apiserver.apiserver_request_count
(gauge)
El número acumulado de solicitudes apiserver desglosado para cada cliente de recursos de API verbo y respuesta HTTP contentType y código (obsoleto en Kubernetes 1.15)
Se muestra como solicitud
kube_apiserver.apiserver_request_count.count
(count)
El recuento monotónico de solicitudes apiserver desglosado para cada cliente de recursos de API verbo y respuesta HTTP contentType y código (obsoleto en Kubernetes 1.15)
Se muestra como solicitud
kube_apiserver.apiserver_request_terminations_total.count
(count)
El número de solicitudes que el apiserver terminó en defensa propia (Kubernetes 1.17+)
Se muestra como solicitud
kube_apiserver.apiserver_request_total
(gauge)
El número acumulado de solicitudes apiserver desglosado para cada cliente de recursos de API verbo y respuesta HTTP contentType y código (Kubernetes 1.15+; reemplaza apiserver_request_count)
Se muestra como solicitud
kube_apiserver.apiserver_request_total.count
(count)
El recuento monotónico de solicitudes apiserver desglosado para cada cliente de recursos de API verbo y respuesta HTTP contentType y código (Kubernetes 1.15+; reemplaza apiserver_request_count.count)
Se muestra como solicitud
kube_apiserver.audit_event
(gauge)
El número acumulado de eventos de auditoría generados y enviados al backend de auditoría
Se muestra como evento
kube_apiserver.audit_event.count
(count)
El recuento monotónico de eventos de auditoría generados y enviados al backend de auditoría
Se muestra como evento
kube_apiserver.authenticated_user_requests
(gauge)
Número acumulado de solicitudes autenticadas desglosadas por nombre de usuario
Se muestra como solicitud
kube_apiserver.authenticated_user_requests.count
(count)
El recuento monotónico de solicitudes autenticadas desglosadas por nombre de usuario
Se muestra como solicitud
kube_apiserver.authentication_attempts.count
(count)
El contador de intentos autentificados (Kubernetes 1.16+)
Se muestra como solicitud
kube_apiserver.authentication_duration_seconds.count
(count)
El histograma de duración de la autenticación desglosado por resultado (Kubernetes 1.17+)
kube_apiserver.authentication_duration_seconds.sum
(gauge)
El histograma de duración de la autenticación desglosado por resultado (Kubernetes 1.17+)
Se muestra como segundo
kube_apiserver.current_inflight_requests
(gauge)
El número máximo de solicitudes de inflight utilizadas actualmente por este apiserver por tipo de solicitud en el último segundo.
kube_apiserver.envelope_encryption_dek_cache_fill_percent
(gauge)
Porcentaje de las ranuras de caché ocupadas actualmente por DEK en caché.
kube_apiserver.etcd.db.total_size
(gauge)
El tamaño total del archivo de base de datos etcd asignado físicamente en bytes (alfa; Kubernetes 1.19+)
Se muestra como byte
kube_apiserver.etcd_object_counts
(gauge)
El número de objetos almacenados en el momento del último check divididos por tipo (alfa; obsoleto en Kubernetes 1.22)
Se muestra como objeto
kube_apiserver.etcd_request_duration_seconds.count
(count)
Recuento de latencias de solicitud Etcd para cada operación y tipo de objeto (alfa)
kube_apiserver.etcd_request_duration_seconds.sum
(gauge)
Latencias de solicitud Etcd para cada operación y tipo de objeto (alfa)
Se muestra en segundos
kube_apiserver.etcd_request_errors_total
(count)
Recuento de solicitudes fallidas Etcd para cada operación y tipo de objeto
Se muestra como solicitud
kube_apiserver.etcd_requests_total
(count)
Recuento de solicitudes Etcd para cada operación y tipo de objeto
Se muestra como solicitud
kube_apiserver.flowcontrol_current_executing_requests
(gauge)
Número de solicitudes en fase de ejecución inicial (para un WATCH) o cualquiera (para un no WATCH) en el subsistema Prioridad y equidad de la API
kube_apiserver.flowcontrol_current_executing_seats
(gauge)
Número de puestos (unidades de concurrencia) ocupados actualmente por solicitudes en ejecución en el subsistema de prioridad y equidad de la API.
kube_apiserver.flowcontrol_current_inqueue_requests
(count)
Número de solicitudes pendientes en las colas del subsistema de prioridad y equidad de la API
kube_apiserver.flowcontrol_dispatched_requests_total
(count)
Número de solicitudes ejecutadas por el subsistema de prioridad y equidad de la API
kube_apiserver.flowcontrol_nominal_limit_seats
(gauge)
Límite nominal del número de puestos en ejecución disponibles para las solicitudes en el subsistema de prioridad y equidad de la API.
kube_apiserver.flowcontrol_rejected_requests_total.count
(count)
Número de solicitudes rechazadas por el subsistema de prioridad y equidad de la API
kube_apiserver.flowcontrol_request_concurrency_limit
(gauge)
Límite de concurrencia compartida en el subsistema de prioridad y equidad de la API
kube_apiserver.flowcontrol_request_wait_duration_seconds.count
(count)
El recuento del histograma de la duración de la espera de la solicitud en el subsistema de prioridad y equidad de la API.
kube_apiserver.flowcontrol_request_wait_duration_seconds.sum
(gauge)
La suma del histograma de la duración de la espera de la solicitud en el subsistema de prioridad y equidad de la API
Se muestra en segundos
kube_apiserver.go_goroutines
(gauge)
El número de goroutines que existen actualmente
kube_apiserver.go_threads
(gauge)
El número de subprocesos de SO creados
Se muestra como subproceso
kube_apiserver.grpc_client_handled_total
(count)
El número total de RPCs completadas por el cliente independientemente del éxito o fracaso
Se muestra como solicitud
kube_apiserver.grpc_client_msg_received_total
(count)
El número total de mensajes de flujo gRPC recibidos por el cliente
Se muestra como mensaje
kube_apiserver.grpc_client_msg_sent_total
(count)
El número total de mensajes de flujo gRPC enviados por el cliente
Se muestra como mensaje
kube_apiserver.grpc_client_started_total
(count)
El número total de RPCs iniciados en el cliente
Se muestra como solicitud
kube_apiserver.http_requests_total
(gauge)
El número acumulado de solicitudes HTTP realizadas
Se muestra como solicitud
kube_apiserver.http_requests_total.count
(count)
El recuento monotónico del número de solicitudes HTTP realizadas
Se muestra como solicitud
kube_apiserver.kubernetes_feature_enabled
(gauge)
Si una puerta de función de Kubernetes está activada o no, identificada por el nombre y fase (alfa; Kubernetes 1.26+)
kube_apiserver.longrunning_gauge
(gauge)
El indicador de todas las solicitudes apiserver activas de larga duración desglosadas por verbo, grupo, versión, recurso, ámbito y componente. No todas las solicitudes se registran de esta manera.
Se muestra como solicitud
kube_apiserver.process_cpu_total
(count)
Tiempo total de CPU del usuario y del sistema empleado en segundos.
Se muestra como segundo
kube_apiserver.process_resident_memory_bytes
(gauge)
El tamaño de la memoria residente en bytes
Se muestra como byte
kube_apiserver.process_virtual_memory_bytes
(gauge)
El tamaño de la memoria virtual en bytes
Se muestra como byte
kube_apiserver.registered_watchers
(gauge)
El número de observadores registrados actualmente para un recurso determinado
Se muestra como objeto
kube_apiserver.request_duration_seconds.count
(count)
La distribución de la latencia de respuesta en segundos para cada verbo, valor de ejecución en seco, grupo, versión, recurso, subrecurso, ámbito y recuento de componentes.
kube_apiserver.request_duration_seconds.sum
(gauge)
La distribución de la latencia de respuesta en segundos para cada verbo, valor de ejecución en seco, grupo, versión, recurso, subrecurso, ámbito y componente
Se muestra en segundos
kube_apiserver.request_latencies.count
(count)
La distribución de la latencia de respuesta en microsegundos para cada verbo, recurso y subrecurso.
kube_apiserver.request_latencies.sum
(gauge)
La distribución de la latencia de respuesta en microsegundos para cada verbo, recurso y subrecurso
Se muestra como microsegundo
kube_apiserver.requested_deprecated_apis
(gauge)
Indicador de las APIs obsoletas que se han solicitado, desglosadas por grupo de API, versión, recurso, subrecurso y versión eliminada
Se muestra como solicitud
kube_apiserver.rest_client_request_latency_seconds.count
(count)
La latencia de la solicitud en segundos desglosada por verbo y URL
kube_apiserver.rest_client_request_latency_seconds.sum
(gauge)
La latencia de la solicitud en segundos desglosada por verbo y URL
Se muestra en segundos
kube_apiserver.rest_client_requests_total
(gauge)
Número acumulado de solicitudes HTTP divididas por método de código de estado y host
Se muestra como solicitud
kube_apiserver.rest_client_requests_total.count
(count)
El recuento monótono de solicitudes HTTP dividido por método de código de estado y host
Se muestra como solicitud
kube_apiserver.slis.kubernetes_healthcheck
(gauge)
Resultado de un único check de estado del apiserver de kubernetes (alfa; requiere k8s v1.26+)
kube_apiserver.slis.kubernetes_healthcheck_total
(count)
El recuento monotónico de todos los checks de estado del apiserver de kubernetes (alfa; requiere k8s v1.26+)
kube_apiserver.storage_list_evaluated_objects_total
(gauge)
Número de objetos comprobados durante el servicio de una solicitud LIST desde el almacenamiento (alfa; Kubernetes 1.23+)
Se muestra como objeto
kube_apiserver.storage_list_fetched_objects_total
(gauge)
El número de objetos leídos del almacenamiento en el curso de servir una solicitud LIST (alfa; Kubernetes 1.23+)
Se muestra como objeto
kube_apiserver.storage_list_returned_objects_total
(gauge)
El número de objetos devueltos para una solicitud LIST desde el almacenamiento (alfa; Kubernetes 1.23+)
Se muestra como objeto
kube_apiserver.storage_list_total
(gauge)
Número de solicitudes LIST servidas desde el almacenamiento (alfa; Kubernetes 1.23+)
Se muestra como objeto
kube_apiserver.storage_objects
(gauge)
El número de objetos almacenados en el momento del último check divididos por tipo (Kubernetes 1.21+; sustituye a etcd_object_counts)
Se muestra como objeto
kube_apiserver.watch_events_sizes.count
(count)
Distribución del tamaño de los eventos de vigilancia (Kubernetes 1.16+)
kube_apiserver.watch_events_sizes.sum
(gauge)
La distribución del tamaño de los eventos de vigilancia (Kubernetes 1.16+)
Se muestra como byte

Checks de servicio

Kube_apiserver_metrics no incluye checks de servicios.

Eventos

Kube_apiserver_metrics no incluye eventos.

Solucionar problemas

¿Necesitas ayuda? Ponte en contacto con el servicio de asistencia de Datadog.