Uploaded by Anthony

scribd.vdownloaders.com prometheus-amp-grafana

advertisement
Prometheus & Grafana
05/05/2021
Versión 1
Índice
Prometheus
Introducción
Precio
Ejemplo
1) Metric sample ingestion usage and costs
2) Storage usage and costs
3) Query usage and costs
3
3
3
4
4
4
5
Grafana
Introducción
Precio
Ejemplo
6
6
6
6
Seguridad
7
Step by Step
Prometheus
Grafana
Prerrequisito
Pasos
8
8
9
9
9
Prometheus & Grafana | Versión 1
|2
Prometheus
Introducción
Es un conjunto de herramientas de alerta y monitorización de sistemas de código abierto, lo
que le facilita monitorear de forma segura los entornos de contenedores.
Está diseñado específicamente para manejar la alta cardinalidad en la supervisión de datos
que se generan por aplicaciones basadas en contenedores. Escala elásticamente la
ingestión, el almacenamiento y la consulta de métricas para satisfacer la demanda de
cualquier cliente.
Ofrece una prueba gratuita de 90 días (en las regiones de AWS admitidas) con:
• Metric samples ingested: 40 M
• Sum of query execution time: 60 min
• Metrics stored: 10 GB
Precio
El precio se calcula según storage, ingesta y query.
• Storage: esto es por las mectic samples y la metadata en GB, la metadata varía de
tamaño según el nombre de la métrica y sus labels (key/values).
• Metric sample ingestion: Los cargos por métricas ingeridas y almacenadas se prorratean
por hora y se facturan solo cuando envía métricas a AMP(Amazon Managed Service for
Prometheus), medidos usando gigabytes-month (GB-Mo).
• Query: Calcula el tiempo de ejecución de todas las solicitudes de consulta al endpoint
compatible con Prometheus. Los cargos por las métricas consultadas se prorratean por
minuto y solo se facturan cuando consulta las métricas.
Los precios no incluyen los impuestos y aranceles aplicables, incluido el IVA, el GST y el
impuesto a las ventas aplicable.
Prometheus & Grafana | Versión 1
|3
Ejemplo
Amazon Elastic Kubernetes Service (EKS) on EC2 and Kubernetes
Si monitoreamos 1 Kubernetes cluster con 10 nodes y 100 métricas de Prometheus por
nodo, colectados cada 60 segundos por un mes entero (744 horas). Los costos de uso se
calcularían: 1. Metric sample ingestion, 2. Storage, and 3. Query.
1) Metric sample ingestion usage and costs
Primero calculamos el número de muestras métricas ingeridas y los costos por esos
muestras.
El número de muestras ingeridas por mes es de 44,64 millones (10 nodos * 100 métricas por
nodo / 60 intervalo de recogida en segundos * 3,600 segundos en una hora * 744 horas en
un mes = 10 * 100/60 * 3,600 * 744 = 44.64 millones de muestras).
Los costos ingeridos de métricas mensuales son $ 8,93 ($ 0,002 / 10,000 para los primeros
2000 millones de muestras métricas * 44,64 millones de muestras).
2) Storage usage and costs
En segundo lugar, calcularemos el almacenamiento en GB y los costos de las metric
samples y los metadatos métricos almacenados. Para este ejemplo, asumiremos que tiene
20 labels por métrica con 100 valores de labels únicos por labels. Los metadatos, incluidos
el nombre de la métrica, los labels y los valores de las etiquetas, se almacenan a diario.
También asumiremos un promedio de 30 bytes por labels y valor de labels y 2 bytes por
metric sample ingested.
El GB mensual de almacenamiento es 0.25 GB (metadatos de métricas * # de días por mes)
+ (2 bytes * número de metric samples = (100 métricas * 20 labels * 100 valores de labels *
30 bytes * ~ 30 días por mes) + ( 2 bytes * 44,64 millones de muestras) = 180 millones de
bytes + 89,28 millones de bytes = 91,08 millones de bytes = 0,25 GB).
El cargo por almacenamiento es de $0.01 ($0.03/GB * 0.25 GB).
Prometheus & Grafana | Versión 1
|4
3) Query usage and costs
Ahora calcularemos el tiempo de ejecución de la consulta y los costos de la query para este
ejemplo. Asumiremos que tiene 1 usuario final monitoreando un panel durante un promedio
de 2 horas al día actualizándolo cada 60 segundos con 20 widgets de gráficos por panel
(asumiendo 1 consulta PromQL por widget). El tiempo medio de ejecución de una query es
de 10 a 300 ms, pero para casos de uso de supervisión, los tiempos de ejecución suelen ser
más rápidos. Por lo tanto, en las querys de las últimas 24 horas de metric samples, el
tiempo de ejecución será más rápido. Supondremos 18ms por query para este ejemplo.
Primero, comenzaremos calculando el recuento de queries por mes, que es de 72,000
queries (1 usuario final * 20 gráficos * 2 horas de visualización de un panel * 3600 segundos
por hora / 60 segundos por actualización del panel * ~ 30 días en un mes).
En segundo lugar, calculamos el tiempo de ejecución de la query en minutos por mes, que es
de 21,6 minutos (72.000 consultas * 18 ms / 1000 ms en un segundo / 60 segundos en un
minuto). Ahora podemos calcular el cargo de query de $3.07 ($0.142/minute * 21.6
minutes).
Ahora podemos calcular sus costos mensuales para este ejemplo:
Metric ingestion costs: $8.93 ($0.002/10,000 * 44.64 million samples)
Storage costs: $0.01 ($0.03/GB * 0.25 GB)
Query costs: $3.07 ($0.142/minute * 21.6 minutes)
Total Amazon Managed Service for Prometheus Monthly charges = $8.93 (metric ingestion)
+ $0.01 (storage) + $3.07 (query) = $12.01
Prometheus & Grafana | Versión 1
|5
Grafana
Introducción
Es una solución de visualización de datos de código abierto y operaciones en dashboards.
Solo está disponible para US East (N. Virginia) us-east-1 y Europe (Ireland) eu-west-1.
Se debe tener en cuenta que para su utilización necesitamos tener Single-Sign-On (SSO)
activo. No se puede usar CloudFormation para los workspaces, está en preview. Ofrece una
prueba gratuita de 90 días, con hasta cinco usuarios gratuitos por cuenta. Existen dos tipos
de licencia de usuario: Editor (Admin) / Viewer.
Precio
Se cobra por mes, y por licencia. Los Editor/Admin valen 9 dólares por mes, este tiene
permisos administrativos, para administrar usuarios, crear y administrar dashboards, alertas,
y asignar permisos para acceder a fuentes de datos. Los Viewers valen 5 dólares por mes,
tiene acceso de sólo visualización del workspace.
Ahora, tengan en cuenta que se cobra por usuario activo, este es al que accede al dashboard
al menos una vez al mes.
Ejemplo
Si tenes 10 Editores y en ese mes solo 3 accedieron al dashboard se les va a cobrar por esos
3, como salen 9 dólares sería un total de 27 dólares y no 90 dólares.
Otra cosa a tener en cuenta es que puedes crear muchos workspaces, pero te van a cobrar
por separado, si un usuario admin ingresa a dos dashboards se va a cobrar 9 dólares por
cada uno.
Prometheus & Grafana | Versión 1
|6
Seguridad
Para Prometheus y Grafana de la seguridad se encarga AWS, se usa como en todos los
servicios que se utilizan el modelo de responsabilidad compartida donde básicamente AWS
es responsable de proteger la infraestructura que ejecuta los servicios de AWS. Los
auditores externos prueban y verifican la eficacia de la seguridad como parte de los
programas de cumplimiento de AWS.
Prometheus & Grafana | Versión 1
|7
Step by Step
Prometheus
1.
2.
Crear el workspace en AWS, en la región que desee monitorear.
Dentro del workspace verás el Ingest/Collect, seguiremos sus pasos.
2.1.
Si no lo tiene, crear un rol de IAM llamado amp-iamproxy-ingest-role siguiendo
esta guía:
https://docs.aws.amazon.com/prometheus/latest/userguide/set-up-irsa.html
#set-up-irsa-ingest
2.2.
Por terminal, crear archivo de configuración
“amp_ingest_override_values.yaml” con los valores que les brinda el
Ingest/Collect.
vim amp_ingest_override_values.yaml
3.
Ingresar al Cluster
aws eks update-kubeconfig --name <cluster> --profile <profile>
4.
Ya dentro del Cluster debemos añadir el repositorio de Prometheus
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
5.
Instalamos Prometheus con el archivo yaml anteriormente agregado
helm install -f amp_ingest_override_values.yaml prometheus-community/prometheus --generate-name
6.
Verificar que los PODs se hayan creado correctamente
kubectl get pods -A
7.
En caso de que no esté previamente creado añadir el Identity provider
7.1.
Desde la consola de AWS ir a Amazon Container Services → Amazon EKS →
Clusters.
7.2.
Seleccionar el Cluster al que se quiere monitorear.
7.3.
En la solapa de Configuration → Details debemos copiar el OpenID Connect
provider URL.
7.4.
Desde la consola de AWS ir a IAM → Identity Providers → Add provider.
7.5.
En la configuración seleccionar OpenID Connect.
7.6.
Pegar en Provider URL la URL previamente copiada en el punto 6.3.
7.7.
En Audience poner: sts.amazonaws.com
7.8.
Add Provider.
Prometheus & Grafana | Versión 1
|8
Grafana
Prerrequisito
Tener SSO (AWS Single Sign-On) Enabled. En caso de no tenerlo:
1. Desde la consola de AWS ir a AWS Single Sign-On y activarlo.
2. Añadir un usuario y un grupo. Luego se podrán añadir más usuarios, lo haremos más
adelante en caso de ser necesario.
Pasos
Teniendo los prerrequisitos, desde la consola de AWS ir a Grafana.
1. Dentro de las regiones soportadas crear el workspace.
2. Añadir el/los usuario/usuarios previamente creados con SSO.
3. Seleccione uno o varios de los usuarios y hágalo administrador (Make admin).
4. Haga click en link de Grafana workspace URL e ingrese con su usuario y contraseña
de SSO.
Dentro del workspace de Grafana, como administrador, podremos añadir las métricas de
prometheus.
1. Vamos al ícono de AWS a la izquierda del panel y hacemos click en Data sources.
2. Seleccionamos Amazon Managed Service for Prometheus y la región donde lo
creamos.
3. Seleccionamos el workspace de Prometheus y lo añadimos.
Una vez hecho esto, podemos crear un dashboard o importarlo. Al ser el primer dashboard
vamos a importar uno.
1. Nos posicionamos en el ícono de “+” a la izquierda del panel y hacemos click en
Import.
2. Importaremos desde grafana.com*, solo tenemos que añadir el id (en nuestro caso
11074) y hacer click en Load. En la última casilla seleccionaremos el data source e
importamos.
*Para obtener mas plantillas de dashboards ingrese en
https://grafana.com/grafana/dashboards en la parte de abajo de la página podrá filtrar para
elegir el dashboard que más se adecue con lo que quiere.
Prometheus & Grafana | Versión 1
|9
Download