Descripción de los costos de supervisión de Container Insights
En este artículo se proporcionan una guía de precios de Container Insights, que le ayuda a entender cómo:
- Medir los costos después de habilitar Container Insights en uno o varios contenedores.
- Controlar la recopilación de datos y realizar reducciones de costos.
Sugerencia
Para descubrir estrategias que le ayudarán a reducir los costes de Azure Monitor, consulte Optimización de costes y Azure Monitor.
El modelo de precios de Azure Monitor se basa principalmente en la cantidad de datos ingeridos en gigabytes por día en el área de trabajo de Log Analytics. Los costos de un área de trabajo de Log Analytics no se basan solo en el volumen de datos recopilados, sino que también dependen del plan seleccionado y de cuánto tiempo se decida almacenar los datos generados a partir de los clústeres.
Nota:
Consulte Estimación de los costos de Azure Monitor para calcular los costos de Container Insights antes de habilitarlos.
Los siguientes tipos de datos que se recopilan de un clúster de Kubernetes con Container Insights influyen en el costo y se pueden personalizar en función del uso:
- Perf, Inventory, InsightsMetrics y KubeEvents se pueden controlar mediante valores de optimización de costos
- Registros de contenedor de stdout y stderr de cada contenedor supervisado en cada espacio de nombres de Kubernetes del clúster mediante el agente ConfigMap
- Variables de entorno de contenedor de cada contenedor supervisado en el clúster
- Trabajos y pods de Kubernetes completados en el clúster que no requieren supervisión
- Extracción activa de métricas de Prometheus
- Recopilación de registros de recursos del nodo principal de Kubernetes en el clúster de Azure Kubernetes Service (AKS) para analizar los datos de registro generados por los componentes principales, como
kube-apiserver
ykube-controller-manager
.
Control de la ingesta para reducir los costos
Considere la posibilidad de un escenario en el que las distintas unidades de negocio de su organización compartan la infraestructura de Kubernetes y un área de trabajo de Log Analytics. Cada unidad de negocio está separada por un espacio de nombres de Kubernetes. Puede visualizar la cantidad de datos que se ingieren en cada área de trabajo con el runbook Uso de datos. El runbook está disponible en la pestaña Informes.
Este libro le ayuda a visualizar el origen de los datos sin tener que crear su propia biblioteca de consultas desde lo que compartimos nuestra documentación. En este libro, puede ver gráficos que presentan datos facturables, como los siguientes:
- Datos facturables totales ingeridos en GB por solución.
- Datos facturables ingeridos por registros de contenedor (registros de aplicación).
- Datos de registros de contenedores facturables ingeridos por espacio de nombres de Kubernetes.
- Datos de registros de contenedores facturables ingeridos segregados por nombre de clúster.
- Datos de registros de contenedores facturables ingeridos por entrada de origen de registro.
- Datos de diagnóstico facturables ingeridos por registros de nodo principal de diagnóstico.
Para más información sobre cómo administrar derechos y permisos en el libro, consulte Control de acceso.
Determinar la causa principal de la ingesta de datos
Los datos de Container Insights se componen principalmente de contadores de métricas (Perf, Inventory, InsightsMetrics y métricas personalizadas) y registros (ContainerLog). En función del tamaño y el uso del clúster, es posible que tenga requisitos y necesidades de supervisión diferentes.
Si va a la sección Por tabla del libro Uso de datos, puede ver el desglose de los tamaños de tabla de Container Insights.
Si la mayoría de los datos proceden de una de estas tablas siguientes:
- Perf
- InsightsMetrics
- ContainerInventory
- ContainerNodeInventory
- KubeNodeInventory
- KubePodInventory
- KubePVInventory
- KubeServices
- KubeEvents
Puede ajustar la ingesta mediante los valores de optimización de costos o la migración al complemento de métricas Prometheus
De lo contrario, la mayoría de los datos pertenecen a la tabla ContainerLog. y puede llevar a cabo los pasos siguientes para reducir los costos de ContainerLog.
Reducir los costos de ContainerLog
Después de completar el análisis para determinar qué origen u orígenes están generando los datos que están superando sus requisitos, puede volver a configurar la recopilación de datos. Para más información sobre cómo configurar la recopilación de stdout, stderr y variables de entorno, consulte Configuración de las opciones de recopilación de datos del agente.
Los siguientes ejemplos muestran los cambios que se pueden aplicar al clúster mediante la modificación del archivo ConfigMap, que ayudan a controlar los costos.
Deshabilite los registros stdout en todos los espacios de nombres del clúster modificando el código siguiente en el archivo ConfigMap para el servicio Azure Container Insights que extrae las métricas:
[log_collection_settings] [log_collection_settings.stdout] enabled = false
Deshabilite la recopilación de registros stderr del espacio de nombres de desarrollo. Un ejemplo es
dev-test
. Siga recopilando registros stderr de otros espacios de nombres, comoprod
ydefault
, modificando el código siguiente en el archivo ConfigMap:Nota
La recopilación de registros de kube-system está deshabilitada de forma predeterminada. La configuración predeterminada se conserva. La adición del espacio de nombres
dev-test
a la lista de espacios de nombres de exclusión se aplica a la recopilación de registros de stderr.[log_collection_settings.stderr] enabled = true exclude_namespaces = ["kube-system", "dev-test"]
Deshabilite la recopilación de variables de entorno en el clúster; para ello, modifique el código siguiente en el archivo ConfigMap. Esta modificación se aplica a todos los contenedores de cada espacio de nombres de Kubernetes.
[log_collection_settings.env_var] enabled = false
Para limpiar los trabajos que están terminados, especifique la directiva de limpieza en su definición de trabajo yaml. A continuación se muestra un ejemplo de definición de trabajo con la directiva de limpieza. Para saber más, consulte la documentación de Kubernetes.
apiVersion: batch/v1 kind: Job metadata: name: pi-with-ttl spec: ttlSecondsAfterFinished: 100
Después de aplicar uno o varios de estos cambios a ConfigMaps, aplíquelo al clúster con el comando kubectl apply -f <config3. map_yaml_file.yaml>
. Por ejemplo, ejecute el comando kubectl apply -f container-azm-ms-agentconfig.yaml
para abrir el archivo en el editor predeterminado y modificarlo y, después, guárdelo.
Configuración de registros básicos
Puede ahorrar en los costos de ingesta de datos de su área de trabajo de Log Analytics que utiliza principalmente para la depuración, solución de problemas y auditoría como registros básicos. Para más información, incluidas las limitaciones de los registros básicos, consulte Configuración de registros básicos en Azure Monitor. ContainerLogV2 es la versión configurada de los registros básicos que usa Container Insights. ContainerLogV2 Incluye registros detallados basados en texto.
Debe estar en el esquema ContainerLogV2 para configurar los registros básicos. Para más información, consulte Habilitar el esquema ContainerLogV2 (versión preliminar).
Recopilación de métricas de Prometheus
Nota:
En esta sección se describe la colección de métricas de Prometheus en el área de trabajo de Log Analytics. Esta información no se aplica si usa Prometheus administrado para extraer las métricas de Prometheus.
Si recopila métricas de Prometheus en el área de trabajo de Log Analytics, asegúrese de limitar el número de métricas que recopila del clúster:
- Asegúrese de que la frecuencia de extracción esté configurada de forma óptima. El valor predeterminado es 60 segundos. Puede aumentar la frecuencia a 15 segundos, pero debe asegurarse de que las métricas que se van a extraer se publiquen con esa frecuencia. De lo contrario, se extraerán muchas métricas y se enviarán a su área de trabajo de Log Analytics a intervalos, lo que aumentará los costos de ingesta de datos y de retención, pero con menos valor.
- Container Insights admite listas de inclusión y exclusión por nombres de métrica. Por ejemplo, si va a extraer métricas de kubedns en el clúster, es posible que se extraigan cientos de ellas de forma predeterminada. Pero lo más probable es que solo le interese un subconjunto de las métricas. Confirme que ha especificado una lista de métricas para extraer o excluya otras, excepto unas pocas, para guardarlas en el volumen de ingesta de datos. Es fácil habilitar la extracción y no usar muchas de esas métricas, lo que solo añadirá costos adicionales en la factura de Log Analytics.
- Al extraer mediante anotaciones de pod, asegúrese de filtrar por espacio de nombres para excluir la extracción de las métricas de pod de los espacios de nombres que no utiliza. Un ejemplo es el espacio de nombres
dev-test
.
Datos recopilados de los clústeres de Kubernetes
Datos métricos
Container Insights incluye un conjunto predefinido de métricas y elementos de inventario recopilados que se escriben como datos de registro en el área de trabajo de Log Analytics. Todas las métricas de la tabla siguiente se recopilan cada minuto.
Tipo | Métricas |
---|---|
Métricas de nodo | cpuUsageNanoCores cpuCapacityNanoCores cpuAllocatableNanoCores memoryRssBytes memoryWorkingSetBytes memoryCapacityBytes memoryAllocatableBytes restartTimeEpoch used (disco)free (disco)used_percent (disco)io_time (E/S de disco)writes (E/S de disco)reads (E/S de disco)write_bytes (E/S de disco)write_time (E/S de disco)iops_in_progress (E/S de disco)read_bytes (E/S de disco)read_time (E/S de disco)err_in (red)err_out (red)bytes_recv (red)bytes_sent (red)Kubelet_docker_operations (kubelet) |
Métricas de contenedor | cpuUsageNanoCores cpuRequestNanoCores cpuLimitNanoCores memoryRssBytes memoryWorkingSetBytes memoryRequestBytes memoryLimitBytes restartTimeEpoch |
Inventario de clústeres
En la siguiente lista se incluyen los datos de inventario de clústeres recopilados de forma predeterminada:
- KubePodInventory: 1 por pod y minuto
- KubeNodeInventory: 1 por nodo y minuto
- KubeServices: 1 por servicio y minuto
- ContainerInventory: 1 por contenedor y minuto
Pasos siguientes
Para ayudarle a comprender cuáles son los probables costos en base a los patrones de uso recientes de los datos recopilados con Container Insights, vea Análisis del uso en un área de trabajo de Log Analytics.