La consola de ARMS es totalmente compatible con soluciones de código abierto. Para escenarios que requieren un alto grado de personalización, como la creación de paneles de observability personalizados, este tema explica cómo utilizar Grafana y Prometheus. También incluye ejemplos sobre cómo escribir instrucciones de consulta personalizadas para recuperar datos.
Contexto
Managed Service for Prometheus integra el origen de datos de Application Monitoring de forma predeterminada. Puede usar Managed Service for Prometheus para obtener datos de monitoreo de aplicaciones, consultar paneles predefinidos y personalizarlos según sus necesidades.
Application Monitoring crea automáticamente una instancia gratuita de Alibaba Cloud Prometheus en cada región. Todas las métricas de Application Monitoring en la región China (Hangzhou) se almacenan en la instancia arms_metrics_cn-hangzhou_cloud_hangzhou de Managed Service for Prometheus en la misma región.
Escenarios
Crear paneles basados en métricas de Application Monitoring.
Para operaciones y mantenimiento diarios, crear paneles específicos mediante la combinación de métricas de Application Monitoring con métricas de componentes concretos en otros orígenes de datos.
Antes de un pico de tráfico del sitio web, crear paneles orientados a escenarios específicos al combinar métricas de Application Monitoring con métricas de componentes ascendentes y descendentes en otros orígenes de datos.
Mostrar datos de Application Monitoring, obtenidos mediante el monitoreo de Prometheus, en su propia instalación de Grafana autogestionada.
Realizar desarrollos adicionales sobre los datos de Application Monitoring obtenidos del monitoreo de Prometheus.
Requisitos previos
Se ha instalado un agente para su aplicación. Para más información, consulte Application Monitoring onboarding overview.
Ha instalado Grafana en sus instalaciones o ha creado un recurso de Managed Service for Grafana workspace.
Personalizar un panel de visualización
Paso 1: Agregar el origen de datos de Application Monitoring
Managed Service for Prometheus integra el origen de datos de Application Monitoring de forma predeterminada, por lo que solo necesita agregar la instancia correspondiente de Managed Service for Prometheus como origen de datos en Grafana.
Self-managed Grafana
-
Obtenga el endpoint de la API HTTP de Prometheus.
-
En la consola de ARMS, vaya a la página . En la barra de menú superior, seleccione la región donde está desplegada su aplicación.
Una instancia del tipo Prometheus for Application Monitoring es la instancia integrada predeterminada para Application Monitoring.
-
Haga clic en el nombre de la instancia de Application Monitoring y luego en Settings en el panel de navegación izquierdo para ver el endpoint de la API HTTP.
En la parte inferior de la página Settings, en la sección HTTP API Address (Grafana Read Address), encontrará las URL públicas e internas.
-
(Opcional) Para proteger las lecturas de datos desde Grafana, puede hacer clic en Generate Token para obtener un token de autenticación para la instancia de Prometheus.
ImportanteDespués de generar un token, debe configurarlo al agregar el origen de datos en Grafana. De lo contrario, Grafana no podrá leer los datos de monitoreo de Prometheus.
-
-
Agregue el origen de datos de Prometheus en Grafana.
Esta sección utiliza Grafana 10.x como ejemplo. Para obtener información sobre cómo agregar un origen de datos en otras versiones de Grafana, consulte la documentación oficial de Grafana.
Inicie sesión en su Grafana autogestionado como administrador.
Haga clic en el icono
en la esquina superior izquierda de la página y, a continuación, elija .Haga clic en + Add new data source y, a continuación, seleccione Prometheus como tipo de origen de datos.
En la pestaña Settings, introduzca un nombre personalizado en el campo Name y pegue el endpoint de la API HTTP del paso anterior en el campo Prometheus server URL.
(Opcional) En la sección Custom HTTP Headers, haga clic en +Add header, establezca Header en Authorization y Value en su token de autenticación.
En la parte inferior de la pestaña, haga clic en Save & Test.
Managed Service for Grafana
Alibaba Cloud Managed Service for Grafana le permite integrar orígenes de datos y paneles de Application Monitoring con un solo clic.
En la consola de ARMS, vaya a y haga clic en el ID de su espacio de trabajo.
En la página Workspace Information, dentro de la sección Cloud Service Integration, haga clic en ARMS Application Monitoring Service y, a continuación, haga clic en Integrations a la derecha de la instancia en la región correspondiente.
En el cuadro de diálogo, haga clic en Confirm.
Una vez completada la sincronización, haga clic en el icono Folder a la derecha.
-
En Grafana, en la pestaña Dashboards, haga clic en el nombre de un panel para consultar los paneles predeterminados predefinidos para Application Monitoring.
Los paneles predeterminados predefinidos para Application Monitoring incluyen cuatro paneles: DB, Application, API y Host.
-
Haga clic en el icono
en la esquina superior izquierda de la página y, a continuación, elija para ver el origen de datos de Application Monitoring agregado.Después de agregar correctamente el origen de datos, aparecerá un origen de datos de Prometheus en la lista de orígenes de datos. El nombre será similar a
arms_metrics_cn-hangzhou_cloud_hangzhou_xxx, y la URL correspondiente seráhttp://cn-hangzhou.arms.aliyuncs.com:9090/api/v1/prometheus/<InstanceID>.
Paso 2: Configurar un panel personalizado
En Grafana, haga clic en el icono
en la esquina superior izquierda de la página y, a continuación, haga clic en Dashboards.En la página Dashboards, elija . En la página New dashboard, haga clic en Add visualization para crear un panel.
-
En el cuadro de diálogo Select data source que aparece, seleccione el origen de datos de Application Monitoring. El nombre del origen de datos es arms_metrics_{regionid}_cloud de forma predeterminada.
ImportanteAsegúrese de que existan datos en el origen de datos actual.
-
En el editor de consultas de la pestaña A, configure la métrica de consulta.
PromQL query
En el modo Code, introduzca una instrucción de consulta PromQL a la derecha de Metrics browser.
En la consola de ARMS, en la página de detalles de monitoreo de Application Monitoring, puede hacer clic en el icono
para ver la instrucción PromQL correspondiente a una métrica. Para más información, consulte Query statements.Por ejemplo, después de expandir el panel de la métrica Request Count, puede ver la instrucción de consulta correspondiente en el editor de consultas PromQL, como
sum by (callType,)(sum_over_time_lorc(arms_app_requests_count_ign_destid_endpoint_ppid_prpc{pid="...",callKind=~"http|rpc|custom_entry|server|consumer|schedule",source="apm"}[1m])).Para más información sobre cómo utilizar instrucciones de consulta PromQL, consulte la documentación oficial de Prometheus.
Application Monitoring metrics
En el modo Builder, seleccione una métrica específica de la lista desplegable Metric, como
arms_jvm_threads_count, para consultar el número de subprocesos JVM. Para obtener detalles sobre las métricas compatibles con Application Monitoring, consulte Application Monitoring metrics.En la sección Label filters, configure las condiciones de filtrado de etiquetas; por ejemplo,
host= IP de destino. La instrucción de consulta PromQL correspondiente se genera automáticamente, comoarms_jvm_threads_count{host="xxx.xxx.xx.67"}. -
A la derecha, configure el título del panel y seleccione un tipo de gráfico.
NotaPara la misma métrica, puede seleccionar diferentes tipos de gráficos para visualizar datos con distintos niveles de granularidad.
En el editor de paneles a la derecha, establezca el tipo de visualización en Time series. En la sección Panel options, introduzca JVM Threads Count en el campo Title.
Una vez completada la configuración, haga clic en Apply en la esquina superior derecha.
Personalizar una instrucción de consulta
Puede utilizar Prometheus HTTP API y PromQL statements desde la consola de ARMS para realizar solicitudes HTTP mediante scripts de Shell o código Java con el fin de personalizar los datos recuperados.
Por ejemplo, si el endpoint de la API HTTP de Prometheus es https://cn-hangzhou.arms.aliyuncs.com:9443/api/v1/prometheus/7a8f8e783c66a44a0f6a1dc9a0b8f1/1277589232893727/arms-metrics-99214ff7de7d0b2d/cn-hangzhou, combínelo con una instrucción PromQL en el siguiente formato:
{{Prometheus HTTP API}}/api/v1/query_range?query={{PromQL}}&start={{startTime}}&end={{endTime}}&step={{step}}.
La instrucción de consulta resultante es la siguiente:
https://cn-hangzhou.arms.aliyuncs.com:9443/api/v1/prometheus/7a8f8e783c66a44a0f6a1dc9a0b8f1/1277589232893727/arms-metrics-99214ff7de7d0b2d/cn-hangzhou/api/v1/query_range?query=sum by (callType,)(sum_over_time_lorc(arms_app_requests_count_ign_destid_endpoint_ppid_prpc{pid="ckv8e2vzfj@7e393063f3fd6ad",serverIp=~".*",callKind=~"http|rpc|custom_entry|server|consumer|schedule",source="apm", }[1m]))&start=1728719399&end=1728722999&step=60s
Datos de respuesta de ejemplo:
{"status":"success","data":{"resultType":"matrix","result":[{"metric":{"callType":"http"},"values":[[1728719399,"1575"],[1728719459,"1599"],[1728719519,"1593"],[1728719579,"1584"],[1728719639,"1578"],[1728719699,"1568"],[1728719759,"1561"],[1728719819,"1555"],[1728719879,"1547"],[1728719939,"1540"],[1728719999,"1533"],[1728720059,"1524"],[1728720119,"1518"],[1728720179,"1512"],[1728720239,"1503"],[1728720299,"1497"],[1728720359,"1491"],[1728720419,"1482"],[1728720479,"1476"],[1728720539,"1467"],[1728720599,"1464"],[1728720659,"1453"],[1728720719,"1448"],[1728720779,"1443"],[1728720839,"1434"],[1728720899,"1428"],[1728720959,"1419"],[1728721019,"1416"],[1728721079,"1407"],[1728721139,"1401"],[1728721199,"1395"],[1728721259,"1389"],[1728721319,"1381"],[1728721379,"1374"],[1728721439,"1366"],[1728721499,"1367"],[1728721559,"1350"],[1728721619,"1350"],[1728721679,"1344"],[1728721739,"1335"],[1728721799,"1331"],[1728721859,"1324"],[1728721919,"1320"],[1728721979,"1314"],[1728722039,"1305"],[1728722099,"1302"],[1728722159,"1296"],[1728722219,"1287"],[1728722279,"1284"],[1728722339,"1233"],[1728722399,"1272"],[1728722459,"1155"],[1728722519,"1116"],[1728722579,"1110"],[1728722639,"1107"],[1728722699,"1098"],[1728722759,"1095"],[1728722819,"1086"],[1728722879,"1083"],[1728722939,"1077"],[1728722999,"1184"]]}]}}
Preguntas frecuentes
Cargos por consulta
Sí.
Limitación de consultas PromQL
La limitación está activa, pero los límites no se basan en un simple recuento de consultas por segundo (QPS) en el punto de entrada, ya que diferentes consultas consumen distintas cantidades de recursos. Evite consultas de alto consumo, como consultar todas las API o consultar datos en un intervalo de tiempo superior a 30 días, y mantenga la tasa de consultas por debajo de 50 QPS. Si necesita ejecutar consultas sostenidas de alto consumo, envíe un ticket con antelación para solicitar un aumento de cuota.