Avant de commencer
Pour obtenir les autorisations nécessaires pour libeller des métriques ou afficher des libellés de métriques, demandez à votre administrateur IAM de projet de vous accorder l'un des rôles suivants dans l'espace de noms de votre projet :
- Éditeur de cibles de surveillance : permet de modifier les ressources personnalisées
MonitoringTarget
. Demandez le rôle Éditeur de cibles de surveillance (monitoringtarget-editor
). - Lecteur de cibles Monitoring : affiche les ressources personnalisées
MonitoringTarget
. Demandez le rôle Lecteur des cibles de surveillance (monitoringtarget-viewer
).
Les libellés vous permettent de différencier les caractéristiques d'une métrique. En plus de collecter des métriques, la ressource personnalisée MonitoringTarget
vous permet d'étiqueter les métriques pour des fonctionnalités facultatives telles que les suivantes :
Pour en savoir plus sur le réétiquetage des métriques, consultez https://grafana.com/blog/2022/03/21/how-relabeling-in-prometheus-works/.
Envoyer des métriques vers un autre projet
Les auteurs de conteneurs peuvent indiquer dans leur code que le système doit envoyer des métriques spécifiques à un autre projet pour la surveillance du système, même si le projet correspond à une autre persona GDC. Pour envoyer des métriques à un projet spécifique, ajoutez le libellé _gdch_project
à une métrique dans votre code. Définissez sa valeur sur le nom du projet auquel vous souhaitez attribuer cette métrique d'observabilité spécifique. Exemple :"_gdch_project": "another-project-name"
Vous pouvez également utiliser la ressource personnalisée MonitoringTarget
pour envoyer toutes les données de métriques qu'elle collecte à un autre projet à des fins d'observabilité des données. Pour ce faire, définissez le libellé _gdch_project
comme libellé cible dans le champ metricsRelabelings
et définissez une valeur de remplacement.
L'exemple de code suivant montre comment remplacer la valeur du libellé _gdch_project
par another-project-name
dans la ressource personnalisée MonitoringTarget
:
apiVersion: monitoring.gdc.goog/v1alpha1
kind: MonitoringTarget
metadata:
# Choose the same namespace as the workload pods
namespace: PROJECT_NAMESPACE
name: string
spec:
...
podMetricsEndpoints:
...
metricsRelabelings:
...
- action: replace
targetLabel: _gdch_project
replacement: another-project-name
Remplacez PROJECT_NAMESPACE par l'espace de noms de votre projet.
Ajouter des libellés aux métriques
Les libellés sont utiles pour l'observabilité des données et la surveillance du système, car ils vous permettent d'identifier différentes caractéristiques d'une métrique. Vous pouvez ajouter des libellés aux métriques que les conteneurs analysés n'exposent pas initialement. Dans la ressource personnalisée MonitoringTarget
, définissez le nouveau libellé comme cible et établissez un libellé de remplacement qui servira de valeur. Le système ajoute la nouvelle paire clé/valeur à toutes les métriques collectées par la ressource personnalisée à des fins d'observabilité des données.
L'exemple de code suivant montre comment ajouter le libellé my_new_label
et définir sa valeur sur my_label_value
dans la ressource personnalisée MonitoringTarget
:
apiVersion: monitoring.gdc.goog/v1alpha1
kind: MonitoringTarget
metadata:
# Choose the same namespace as the workload pods
namespace: PROJECT_NAMESPACE
name: string
spec:
...
podMetricsEndpoints:
...
metricsRelabelings:
...
- action: replace
targetLabel: my_new_label
replacement: my_label_value
Remplacez PROJECT_NAMESPACE par l'espace de noms de votre projet.
Renommer une métrique
Vous pouvez renommer entièrement une métrique générée par un conteneur à partir du CR MonitoringTarget
. Définissez le nom d'origine de la métrique et son remplacement dans le champ metricsRelabelings
. La ressource personnalisée prend le nom de la métrique d'origine comme expression régulière et le remplace par le nouveau nom que vous avez ajouté.
L'exemple de code suivant montre comment remplacer le nom de métrique cpu_usage
par cpu_usage_new_name
dans la ressource personnalisée MonitoringTarget
:
apiVersion: monitoring.gdc.goog/v1alpha1
kind: MonitoringTarget
metadata:
# Choose the same namespace as the workload pods
namespace: PROJECT_NAMESPACE
name: string
spec:
...
podMetricsEndpoints:
...
metricsRelabelings:
...
- action: replace
regex: cpu_usage
replacement: cpu_usage_new_name
sourceLabels: [__name__]
targetLabel: __name__
Remplacez PROJECT_NAMESPACE par l'espace de noms de votre projet.