Lorsque le trafic API augmente soudainement, votre application doit se mettre à l'échelle suffisamment rapidement pour suivre la demande. Ce guide explique comment piloter un Horizontal Pod Autoscaler (HPA) à partir des données QPS (requêtes par seconde) en temps réel collectées par ARMS Application Monitoring. Vos pods s'adaptent ainsi à la charge réelle des requêtes, et non uniquement en fonction de l'utilisation du processeur ou de la mémoire.
Fonctionnement
ARMS Application Monitoring instrumente votre application Java et expose le nombre de requêtes par API sous forme de métriques Prometheus. Le composant ack-alibaba-cloud-metrics-adapter lit ces métriques Prometheus et les expose au HPA Kubernetes via l'API External Metrics. Le HPA ajuste ensuite le nombre de replicas de votre Deployment à la hausse ou à la baisse selon le seuil configuré.
Le flux de données complet est le suivant :
ARMS Application Monitoring collecte le nombre de requêtes par API depuis votre application Java → Alibaba Cloud Prometheus stocke les métriques → ack-alibaba-cloud-metrics-adapter convertit les données Prometheus au format de l'API External Metrics de Kubernetes → Kubernetes HPA lit la métrique et ajuste le nombre de replicas de votre Deployment.
Ce guide utilise l'application arms-springboot-demo et son endpoint /demo/queryUser/10 comme exemple pratique tout au long de la procédure.
Prérequis
Avant de commencer, assurez-vous d'avoir :
Déployé la surveillance Alibaba Cloud Prometheus dans votre cluster. Consultez la rubrique Utiliser Alibaba Cloud Prometheus pour la surveillance.
-
Déployé le composant
ack-alibaba-cloud-metrics-adapterdans le namespacekube-system, avec le champprometheus.urlcorrectement configuré. Consultez la rubrique Déployer ack-alibaba-cloud-metrics-adapter. Configuration deprometheus.urlConnectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.
Sur la page Clusters, cliquez sur le nom du cluster. Dans le volet de navigation de gauche, choisissez Applications > Helm.
Sur la page Helm, recherchez ack-alibaba-cloud-metrics-adapter et cliquez sur Update dans la colonne Actions.
Dans le panneau Update Release, définissez
alibabaCloudMetricsAdapter.prometheus.urlavec l'URL de requête de données Prometheus, puis cliquez sur OK. > Pour obtenir l'URL de requête de données Prometheus, consultez la rubrique Comment obtenir l'URL de requête de données Prometheus. Pour une description complète du fichier de configuration, consultez la rubrique Référence de configuration ack-alibaba-cloud-metrics-adapter.
Créé un namespace dédié à la démonstration. Ce guide utilise
arms-demo. Consultez la rubrique Gérer les namespaces et les quotas.Installé un kit de développement Java (JDK). Pour connaître les versions de JDK prises en charge, consultez la rubrique Composants et frameworks Java pris en charge par ARMS.

Étape 1 : Installer le composant ARMS Application Monitoring
Installez le composant ack-onepilot pour connecter votre application à ARMS Application Monitoring.
Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.
Sur la page Clusters, cliquez sur le nom du cluster. Dans le volet de navigation de gauche, cliquez sur Add-ons.
Recherchez ack-onepilot, configurez ses paramètres et finalisez l'installation.
Étape 2 : Accorder les autorisations d'accès à ARMS
L'autorisation requise dépend du type de votre cluster.
Pour les clusters ACK Serverless ou les applications connectées à ECI :
Effectuez l'autorisation sur la page Autorisation rapide RAM, puis redémarrez tous les pods du composant ack-onepilot.
Pour les clusters ACK standard :
Vérifiez si un jeton ARMS Addon existe dans le cluster.
Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.
Sur la page Clusters, cliquez sur le nom du cluster. Dans le volet de navigation de gauche, choisissez Configurations > Secrets.
En haut de la page, définissez Namespace sur kube-system et vérifiez si
addon.arms.tokenexiste.
-
Si le jeton existe : ARMS effectue automatiquement une autorisation sans mot de passe.
Les clusters ACK managés incluent un jeton ARMS Addon par défaut. Certains clusters managés plus anciens peuvent ne pas en disposer ; dans ce cas, accordez les autorisations manuellement en suivant les étapes ci-dessous.
-
Si le jeton n'existe pas : Accordez les autorisations manuellement.
Créez une stratégie personnalisée avec le contenu suivant. Consultez la rubrique Étape 1 : Créer une stratégie personnalisée. ``
json { "Action": "arms:*", "Resource": "*", "Effect": "Allow" }``Attachez la stratégie personnalisée au rôle RAM worker du cluster. Consultez la rubrique Étape 2 : Accorder des autorisations au rôle RAM worker du cluster.
Étape 3 : Activer ARMS Application Monitoring pour votre application Java
Activez la surveillance en ajoutant des labels à la section spec.template.metadata de votre Deployment.
Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.
Sur la page Clusters, cliquez sur le nom du cluster. Dans le volet de navigation de gauche, choisissez Workloads > Deployments.
Sur la page Deployments, cliquez sur Create from YAML.
-
Sélectionnez un modèle dans Sample Templates. Dans le champ Templates, ajoutez les labels suivants à
spec.template.metadata:L'activation d'Application Security entraîne des frais supplémentaires. Consultez Qu'est-ce qu'Application Security ? et Facturation .
labels: armsPilotAutoEnable: "on" armsPilotCreateAppName: "<your-deployment-name>" # Required: replace with your application name one-agent.jdk.version: "OpenJDK11" # Required only for JDK 11 armsSecAutoEnable: "on" # Optional: enables Application SecurityLe YAML complet ci-dessous déploie l'application
arms-springboot-demoavec la surveillance ARMS activée. Exemple YAML complet (Java)apiVersion: v1 kind: Namespace metadata: name: arms-demo --- apiVersion: apps/v1 kind: Deployment metadata: name: arms-springboot-demo namespace: arms-demo labels: app: arms-springboot-demo spec: replicas: 2 selector: matchLabels: app: arms-springboot-demo template: metadata: labels: app: arms-springboot-demo armsPilotAutoEnable: "on" armsPilotCreateAppName: "arms-k8s-demo" one-agent.jdk.version: "OpenJDK11" spec: containers: - resources: limits: cpu: 0.5 image: registry.cn-hangzhou.aliyuncs.com/arms-docker-repo/arms-springboot-demo:v0.1 imagePullPolicy: Always name: arms-springboot-demo env: - name: SELF_INVOKE_SWITCH value: "true" - name: COMPONENT_HOST value: "arms-demo-component" - name: COMPONENT_PORT value: "6666" - name: MYSQL_SERVICE_HOST value: "arms-demo-mysql" - name: MYSQL_SERVICE_PORT value: "3306" --- apiVersion: v1 kind: Service metadata: labels: name: arms-springboot-demo name: arms-springboot-demo namespace: arms-demo spec: ports: - name: arms-demo-svc port: 6666 targetPort: 8888 selector: app: arms-springboot-demo --- apiVersion: apps/v1 kind: Deployment metadata: name: arms-springboot-demo-subcomponent namespace: arms-demo labels: app: arms-springboot-demo-subcomponent spec: replicas: 2 selector: matchLabels: app: arms-springboot-demo-subcomponent template: metadata: labels: app: arms-springboot-demo-subcomponent armsPilotAutoEnable: "on" armsPilotCreateAppName: "arms-k8s-demo-subcomponent" one-agent.jdk.version: "OpenJDK11" spec: containers: - resources: limits: cpu: 0.5 image: registry.cn-hangzhou.aliyuncs.com/arms-docker-repo/arms-springboot-demo:v0.1 imagePullPolicy: Always name: arms-springboot-demo-subcomponent env: - name: SELF_INVOKE_SWITCH value: "false" - name: MYSQL_SERVICE_HOST value: "arms-demo-mysql" - name: MYSQL_SERVICE_PORT value: "3306" --- apiVersion: v1 kind: Service metadata: labels: name: arms-demo-component name: arms-demo-component namespace: arms-demo spec: ports: - name: arms-demo-component-svc port: 6666 targetPort: 8888 selector: app: arms-springboot-demo-subcomponent --- apiVersion: apps/v1 kind: Deployment metadata: name: arms-demo-mysql namespace: arms-demo labels: app: mysql spec: replicas: 1 selector: matchLabels: app: mysql template: metadata: labels: app: mysql spec: containers: - resources: limits: cpu: 0.5 image: registry.cn-hangzhou.aliyuncs.com/arms-docker-repo/arms-demo-mysql:v0.1 name: mysql ports: - containerPort: 3306 name: mysql --- apiVersion: v1 kind: Service metadata: labels: name: mysql name: arms-demo-mysql namespace: arms-demo spec: ports: - name: arms-mysql-svc port: 3306 targetPort: 3306 selector: app: mysql -
Vérifiez le déploiement. Sur la page Deployments, le bouton ARMS Console apparaît dans la colonne Actions pour l'application cible. Cliquez sur ARMS Console pour consulter les données de surveillance. Dans le volet de navigation de gauche, cliquez sur Interface Invocation pour afficher les détails d'accès aux interfaces HTTP. L'application de démonstration génère automatiquement des appels d'interface continus.
La page Interface Invocation affiche la liste des API avec les métriques de temps de réponse, de nombre de requêtes et de nombre d'erreurs, telles que
/demo/randomRT/{id}(5,0 s),/demo/invokeConponent(1,2 s),/demo/queryUser/{id}(218,07 ms),/demo/queryNotExistDB/{id}(2,5 ms) et/demo/queryException/{id}(1,4 ms). La page présente également un diagramme de topologie des appels et des graphiques de tendance pour le nombre de requêtes et le temps de réponse. -
Créez un Service pour
arms-springboot-demoet exposez l'API de l'application via Server Load Balancer (SLB).Sur la page Clusters, cliquez sur le nom du cluster. Dans le volet de navigation de gauche, choisissez Network > Services.
Cliquez sur Create, configurez le Service, puis cliquez sur OK. Consultez la rubrique Créer un Service pour plus de détails sur la configuration.
Une fois le Service créé, notez l'External IP de
arms-demo-svc(par exemple,47.94.XX.XX:8080).Testez l'endpoint : ``
shell curl http://47.94.XX.XX:8080/demo/queryUser/10`Résultat attendu :`json {"id":1,"name":"KeyOfSpectator","password":"12****"}``
Étape 4 : Configurer l'adaptateur de métriques
La surveillance Alibaba Cloud Prometheus et le composant ack-alibaba-cloud-metrics-adapter (déployé dans kube-system) doivent tous deux être opérationnels avant de poursuivre.
Cette étape mappe les données de comptage de requêtes ARMS APM vers une métrique externe nommée que le HPA peut consommer. Le nom de métrique utilisé dans hpa.yaml (Étape 5) est généré à partir du champ name.as que vous configurez ici.
4,1 Obtenir l'URL Prometheus
Connectez-vous à la console ARMS.
Dans le volet de navigation de gauche, choisissez Managed Service for Prometheus > Instances.
Cliquez sur le nom de l'instance cible (format :
arms_metrics_{RegionId}_XXX). Dans le volet de navigation de gauche, cliquez sur Settings.-
Au bas de l'onglet Settings, notez l'HTTP API URL (Grafana Read URL). Il s'agit de votre URL Prometheus.
La page affiche l'HTTP API URL (Grafana Read URL) HTTP API URL (Grafana Read URL) avec Network et URL :
Public :
https://{RegionId}.arms.aliyuncs.com:9443/api/v1/prometheus/{InstanceID}/{UserID}/{Secret}/cn-beijingInternal :
http://{RegionId}-intranet.arms.aliyuncs.com:9090/api/v1/prometheus/{InstanceID}/{UserID}/{Secret}/cn-beijing
Copiez l'adresse du réseau public comme URL Prometheus pour les étapes suivantes.
4,2 Définir l'URL Prometheus dans l'adaptateur
Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.
Sur la page Clusters, cliquez sur le nom du cluster. Dans le volet de navigation de gauche, choisissez Applications > Helm.
Sur la page Helm, recherchez ack-alibaba-cloud-metrics-adapter et cliquez sur Update dans la colonne Actions.
-
Dans le panneau Update Release, insérez l'URL Prometheus que vous avez notée précédemment.
custom: - metricsQuery: sum(sum(container_memory_working_set_bytes)by(pod) * on(pod) group_right sum(<<.Series>>{<<.LabelMatchers>>}) by(pod)) / 1024 / 1024 / 1024 name: as: container_memory_working_total matches: ^(.*)_labels resources: overrides: namespace: resource: namespace pod: resource: pod seriesQuery: kube_pod_labels{namespace!="",pod!=""} default: false enabled: true logLevel: 4 metricsRelistInterval: 1m tls: ca: "" certificate: "" enable: false key: "" url: http://cn-beijing-intranet.arms.aliyuncs.com:9090/api/v1/prometheus/ 8cba801fff65546a3012e9a6843xxx/xxx0538168824xxx xxx a174ae4xxx2xxx xxx xxx xxx ramRoleType: restricted replicas: 1 service: type: ClusterIP serviceAccountName: admin tolerations: [] ConfigReloader: image: repository: registry.aliyuncs.com/acs/configmap-reload tag: v0.0.1
4,3 Ajouter une règle de métrique ARMS à adapter-config
Sur la page Helm, cliquez sur ack-alibaba-cloud-metrics-adapter.
Sur l'onglet Basic Information, cliquez sur adapter-config.
Dans le coin supérieur droit, cliquez sur Edit YAML.
-
Ajoutez la règle suivante à
adapter-config:rules: - metricsQuery: sum(sum_over_time_lorc(<<.Series>>{service="arms-k8s-demo",clusterId="cc13c8725******a9839190b7d1695d7",serverIp=~".*",callKind=~"http|rpc|custom_entry|server|consumer|schedule",source="apm",<<.LabelMatchers>>}[1m])) or vector(0) # ^^ Replace with your ARMS service name # ^^ Replace with your cluster ID name: as: "${1}_per_second" # Generates the HPA metric name: arms_app_requests_per_second matches: "^(.*)_count_ign_destid_endpoint_ppid_prpc" resources: namespaced: false seriesQuery: arms_app_requests_count_ign_destid_endpoint_ppid_prpc{service="arms-k8s-demo",clusterId="cc13c8725******a9839190b7d1695d7"} # ^^ Replace with your ARMS service name and cluster IDRemplacez
arms-k8s-demopar le nom de votre service ARMS etcc13c8725a9839190b7d1695d7par l'ID de votre cluster. Exemple complet deadapter-configapiVersion: v1 data: config.yaml: > rules: - metricsQuery: sum(<<.Series>>{<<.LabelMatchers>>}) by (<<.GroupBy>>) name: as: ${1}_bytes_per_second matches: ^(.*)_bytes resources: overrides: namespace: resource: namespace pod: resource: pod seriesQuery: container_memory_working_set_bytes{namespace!="",pod!=""} - metricsQuery: sum(rate(<<.Series>>{<<.LabelMatchers>>}[1m])) by (<<.GroupBy>>) name: as: ${1}_core_per_second matches: ^(.*)_seconds_total resources: overrides: namespace: resource: namespace pod: resource: pod seriesQuery: container_cpu_usage_seconds_total{namespace!="",pod!=""} - metricsQuery: sum(sum_over_time_lorc(<<.Series>>{service="arms-k8s-demo",clusterId="cc13c8725******a9839190b7d1695d7",serverIp=~".*",callKind=~"http|rpc|custom_entry|server|consumer|schedule",source="apm",<<.LabelMatchers>>}[1m])) or vector(0) name: as: "${1}_per_second" matches: "^(.*)_count_ign_destid_endpoint_ppid_prpc" resources: namespaced: false seriesQuery: arms_app_requests_count_ign_destid_endpoint_ppid_prpc{service="arms-k8s-demo",clusterId="cc13c8725******a9839190b7d1695d7"} kind: ConfigMap metadata: annotations: meta.helm.sh/release-name: ack-alibaba-cloud-metrics-adapter meta.helm.sh/release-namespace: kube-system creationTimestamp: '2024-04-02T02:29:32Z' labels: app.kubernetes.io/managed-by: Helm managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: 'f:data': .: {} 'f:config.yaml': {} 'f:metadata': 'f:annotations': .: {} 'f:meta.helm.sh/release-name': {} 'f:meta.helm.sh/release-namespace': {} 'f:labels': .: {} 'f:app.kubernetes.io/managed-by': {} manager: rc operation: Update time: '2024-04-02T02:40:52Z' name: adapter-config namespace: kube-system resourceVersion: '8223891' uid: 294634e6-aeae-4048-9e69-365a4ce4b2cd
4,4 Vérifier la disponibilité de la métrique
-
Vérifiez que
arms_app_requests_per_secondapparaît dans l'API External Metrics :kubectl get --raw "/apis/external.metrics.k8s.io/v1beta1"Recherchez
"name":"arms_app_requests_per_second"dans le résultat. -
Vérifiez que la métrique renvoie des données en temps réel :
kubectl get --raw "/apis/external.metrics.k8s.io/v1beta1/namespaces/arms-demo/arms_app_requests_per_second" | jq .Résultat attendu :
{ "kind": "ExternalMetricValueList", "apiVersion": "external.metrics.k8s.io/v1beta1", "metadata": {}, "items": [ { "metricName": "arms_app_requests_per_second", "metricLabels": {}, "timestamp": "2025-02-13T02:51:31Z", "value": "2" } ] }
Étape 5 : Créer le HPA
Créez le fichier hpa.yaml avec le contenu suivant.
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: test-hpa
namespace: arms-demo
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: arms-springboot-demo
minReplicas: 1
maxReplicas: 10
metrics:
- type: External
external:
metric:
name: arms_app_requests_per_second # Must match the name generated by adapter-config (name.as field in Step 4.3)
target:
type: AverageValue
averageValue: 40 # Scale out when QPS exceeds 40; External metrics support Value and AverageValue only
Appliquez le HPA :
kubectl apply -f hpa.yaml
Vérifiez qu'il récupère bien les données de métriques :
kubectl get hpa -n arms-demo
Résultat attendu :
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
test-hpa Deployment/arms-springboot-demo 12/40 (avg) 1 10 1 113s
Une valeur non vide pour TARGETS confirme que le HPA lit correctement les données de métriques.
Étape 6 : Vérifier la mise à l'échelle élastique avec un test de charge
Exécutez un test de charge sur l'application de démonstration. Remplacez 47.94.XX.XX:8080 par l'endpoint externe de arms-demo-svc.
ab -c 50 -n 2000 http://47.94.XX.XX:8080/demo/queryUser/10
Pendant l'exécution du test, surveillez le HPA :
kubectl get hpa -n arms-demo
Résultat attendu après la mise à l'échelle :
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
test-hpa Deployment/arms-springboot-demo 47500m/40 (avg) 1 10 10 6m43s
Vérifiez l'effet de la mise à l'échelle selon trois perspectives :
-
Console ARMS : Le volume de requêtes pour l'interface augmente fortement pendant le test de charge.
Sur l'onglet Overview d'ARMS Application Monitoring, les changements de métriques suivants sont observés pendant le test de charge (environ entre 10 h 58 et 10 h 59) :
Requests per minute : Les requêtes d'entrée HTTP passent de près de 0 à environ 1 800.
Response time per minute : Le temps de réponse des entrées HTTP oscille entre 800 ms et 1,6 s.
Slow calls per minute : Augmente jusqu'à environ 6 vers la fin du test.
HTTP status code statistics : Le nombre de codes d'état 200 augmente brusquement jusqu'à environ 2 400, suivant la progression du nombre de requêtes, tandis que les autres codes d'état restent proches de 0.
-
Tableau de bord Prometheus : Le HPA déclenche une mise à l'échelle horizontale lorsque le QPS dépasse le seuil configuré.
Dans le tableau de bord Grafana, le graphique linéaire de la métrique
arms_app_requests_countmontre une pointe prononcée pendant le test de charge. La valeur atteint un pic d'environ 33,5 min, puis retombe à 1,40 min. Les statistiques du panneau indiquent un minimum de 8 s, un maximum de 33,5 min, une moyenne de 2,61 min et une valeur actuelle de 1,40 min. Cluster ACK : Le nombre de replicas de pods s'ajuste à la hausse et à la baisse en fonction du QPS des appels d'interface.
Pour afficher l'historique complet des événements de mise à l'échelle, exécutez :
kubectl describe hpa test-hpa -n arms-demo
Exemples avancés
Les exemples suivants montrent comment configurer l'adaptateur de métriques pour des scénarios de mise à l'échelle plus spécifiques. Tous les exemples utilisent sum_over_time_lorc pour agréger le nombre de requêtes sur une fenêtre d'une minute.
Mettre à l'échelle plusieurs services indépendamment
Définissez une règle par service, en attribuant à chacun un nom de métrique unique afin que le HPA puisse les cibler séparément.
rules:
- metricsQuery: sum(sum_over_time_lorc(<<.Series>>{service="arms-k8s-demo",clusterId="cc13c8725******a9839190b7d1695d7",serverIp=~".*",callKind=~"http|rpc|custom_entry|server|consumer|schedule",source="apm",<<.LabelMatchers>>}[1m])) or vector(0)
name:
as: "${1}_per_second_arms_k8s_demo"
matches: "^(.*)_count_ign_destid_endpoint_ppid_prpc"
resources:
namespaced: false
seriesQuery: arms_app_requests_count_ign_destid_endpoint_ppid_prpc{service="arms-k8s-demo",clusterId="cc13c8725******a9839190b7d1695d7"}
- metricsQuery: sum(sum_over_time_lorc(<<.Series>>{service="arms-k8s-demo-subcomponent",clusterId="cc13c8725******a9839190b7d1695d7",serverIp=~".*",callKind=~"http|rpc|custom_entry|server|consumer|schedule",source="apm",<<.LabelMatchers>>}[1m])) or vector(0)
name:
as: "${1}_per_second_arms_k8s_demo_subcomponent"
matches: "^(.*)_count_ign_destid_endpoint_ppid_prpc"
resources:
namespaced: false
seriesQuery: arms_app_requests_count_ign_destid_endpoint_ppid_prpc{service="arms-k8s-demo-subcomponent",clusterId="cc13c8725******a9839190b7d1695d7"}
Mettre à l'échelle en fonction d'un endpoint RPC spécifique
Ajoutez le label rpc à la requête pour cibler un seul endpoint, plutôt que tout le trafic d'un service.
rules:
- metricsQuery: sum(sum_over_time_lorc(<<.Series>>{service="arms-k8s-demo",rpc="/demo/queryUser/{id}",clusterId="cc13c8725******a9839190b7d1695d7",serverIp=~".*",callKind=~"http|rpc|custom_entry|server|consumer|schedule",source="apm",<<.LabelMatchers>>}[1m])) or vector(0)
name:
as: "${1}_per_second_arms_k8s_demo_queryUser"
matches: "^(.*)_count_ign_destid_endpoint_ppid_prpc"
resources:
namespaced: false
seriesQuery: arms_app_requests_count_ign_destid_endpoint_ppid_prpc{service="arms-k8s-demo",rpc="/demo/queryUser/{id}",clusterId="cc13c8725******a9839190b7d1695d7"}
- metricsQuery: sum(sum_over_time_lorc(<<.Series>>{service="arms-k8s-demo",rpc="/demo/queryException/{id}",clusterId="cc13c8725******a9839190b7d1695d7",serverIp=~".*",callKind=~"http|rpc|custom_entry|server|consumer|schedule",source="apm",<<.LabelMatchers>>}[1m])) or vector(0)
name:
as: "${1}_per_second__arms_k8s_demo_queryException"
matches: "^(.*)_count_ign_destid_endpoint_ppid_prpc"
resources:
namespaced: false
seriesQuery: arms_app_requests_count_ign_destid_endpoint_ppid_prpc{service="arms-k8s-demo",rpc="/demo/queryException/{id}",clusterId="cc13c8725******a9839190b7d1695d7"}
- metricsQuery: sum(sum_over_time_lorc(<<.Series>>{service="arms-k8s-demo",rpc="/demo/queryNotExistDB/{id}",clusterId="cc13c8725******a9839190b7d1695d7",serverIp=~".*",callKind=~"http|rpc|custom_entry|server|consumer|schedule",source="apm",<<.LabelMatchers>>}[1m])) or vector(0)
name:
as: "${1}_per_second__arms_k8s_demo_queryNotExistDB"
matches: "^(.*)_count_ign_destid_endpoint_ppid_prpc"
resources:
namespaced: false
seriesQuery: arms_app_requests_count_ign_destid_endpoint_ppid_prpc{service="arms-k8s-demo",rpc="/demo/queryNotExistDB/{id}",clusterId="cc13c8725******a9839190b7d1695d7"}
Références
Description des métriques de surveillance des applications — liste complète des métriques ARMS disponibles pour utilisation dans les règles de l'adaptateur