Maison >base de données >Redis >Comment utiliser le code Python pour obtenir les valeurs des indicateurs de surveillance d'Azure Redis

Comment utiliser le code Python pour obtenir les valeurs des indicateurs de surveillance d'Azure Redis

WBOY
WBOYavant
2023-05-28 11:16:28987parcourir

Description du problème

Grâce à la page de surveillance des métriques, nous pouvons connaître l'état de fonctionnement et divers indicateurs des ressources actuelles (telles que Redis). Que se passe-t-il si nous devons télécharger des indicateurs localement ou générer des données JSON et les importer sur une plateforme de surveillance tierce ? Azure peut-il exporter diverses données d'indicateurs via du code Python ou un script Powershell ?

如何使用Python代码获取Azure Redis的监控指标值

Solution

Oui !​ ​ La commande PowerShell peut utiliser la commande Get-AzMetric ou az monitor metrics list pour obtenir la valeur Metrics de la ressource. https://docs.microsoft.com/en-us/powershell/module/az.monitor/get-azmetric?view=azps-5.4.0&viewFallbackFrom=azps-5.2.0

#🎜🎜 #
  • Liste des métriques du moniteur az :

    Répertorier les valeurs de métriques pour une ressource https://docs.microsoft.com/en-us/cli/azure/monitor/metrics? view=azure-cli-latest#az_monitor_metrics_list#🎜🎜 #

  • Lorsque vous utilisez du code Python, vous pouvez utiliser l'API REST de Metrics pour réaliser
  • #🎜🎜 #

    Metrics – List
  • :Répertorie les valeurs métriques d'une ressource https://docs.microsoft.com/en-us/rest. /api/monitor/metrics/list
#🎜🎜 #

Enregistrez l'application dans AAD pour obtenir le jeton d'accès pour accéder à Redis Metrics en code Python : (Enregistrez l'application à l'identité Microsoft plateforme : https://docs.azure.cn/zh-cn/active-directory/develop/quickstart-register-app)

  • Remarque : Vous devez d'abord vous connecter à Azure pour utiliser Powershell. Utilisez la commande Connect-AzAccount -Environment AzureChinaCloud ou

    az cloud set –name AzureChinaCloud et az login.
  •        

    Pour utiliser le code Python, vous devez d'abord obtenir le jeton pour accéder aux métriques Redis. Pour obtenir le jeton, vous pouvez enregistrer une application dans Azure AD, puis accorder à l'application l'autorisation de lecteur dans le contrôle d'accès Redis pour lire les données Metris.

Étapes d'exécution

PythonÉtape 1 : Enregistrez l'application AAD, copiez l'ID de l'application, le mot de passe d'accès client # 🎜🎜#

Connectez-vous à la plateforme Azure, entrez dans la page AAD, cliquez sur Inscriptions d'applications : https://portal.azure.cn/?l=en. fr-us #blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredApps

Cliquez sur le bouton "

New Registration

", entrez le nom de l'application, laissez les autres valeurs par défaut, et cliquez sur Enregistrer

  • Après une création réussie, entrez dans la page de candidature, importez dans le "Certificats & secrets" page, créez le secret client que vous devez utiliser et copiez-le, la troisième étape doit utiliser

  • pour copier Tenant ID, Applicaiton ID# 🎜🎜# sur la page de candidature et doit utiliser #🎜 dans le code de la troisième étape 🎜#

  • Le processus de fonctionnement spécifique est illustré dans l'animation suivante : #🎜🎜 #

  • Étape 2 : Accordez l'autorisation d'obtenir des métriques
  • Dans la page Contrôle d'accès (IAM) de Redis, recherchez et accordez l'autorisation Monitoring Reader via le nom de l'application à l'étape 1 #🎜🎜 #

  • Remarque : si l'autorisation n'est pas accordée, une erreur similaire sera signalée dans le code : # 🎜🎜#

Code d'état : e4868b6e145d9789850427f02dd1e608

Contenu de la réponse : b'{"erreur":{" code": "AuthorizationFailed", "message": "Le client 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' avec l'ID d'objet 'xxxxxxxxx-xxxx-xxxx-xxxx-36166b5f7276' n'a pas l'autorisation d'effectuer l'action 'microsoft.insights /metrics/read' sur la portée '/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/xxxx -rg/providers/Microsoft.Cache/Redis/xxxx/providers/microsoft.insights' ou si la portée n'est pas valide. l'accès a été récemment accordé, veuillez actualiser vos informations d'identification. "}}'如何使用Python代码获取Azure Redis的监控指标值

#🎜 🎜#

Étape 3 : Écrivez du code Python, utilisez des requêtes pour envoyer du psot, obtenez une requête

  • Il y a deux parties principales dans le code : l'une consiste à obtenir l'accès Token, et l'autre est Il s'agit d'obtenir des données métriques

  • Le contenu mis en surbrillance doit être remplacé par les informations sur la ressource correspondantes et les informations préparées dans la première étape#🎜 🎜#

  • Dans le contenu du corps de l'obtention du jeton d'accès, grant_type est une valeur fixe, qui est client_credentials. La valeur de la ressource est le point de terminaison de gestion d'Azure en Chine :

    https://management.chinacloudapi.cn

  • import requestsimport json##Part 1: Get Access Tokenaadurl="https://login.chinacloudapi.cn/<your aad tenant id>/oauth2/token"aadbody={&#39;grant_type&#39;:&#39;client_credentials&#39;,&#39;client_id&#39;:&#39;your aad client id&#39;,&#39;client_secret&#39;:&#39;your aad client secret&#39;,&#39;resource&#39;:&#39;https://management.chinacloudapi.cn&#39;}
    rtoken= requests.post(aadurl, data=aadbody)##print(rtoken)objtoken = json.loads(rtoken.text)##print(obj[&#39;access_token&#39;])##Part 2: Get the Metrics Value by Tokenheaders = {&#39;content-type&#39;: "application/json",           &#39;Authorization&#39;: &#39;Bearer &#39;+objtoken[&#39;access_token&#39;]
            }
    
    url= "https://management.chinacloudapi.cn/subscriptions/<subscriptions>/resourceGroups/<resourceGroups>/providers/Microsoft.Cache/Redis/<your redis name>/providers/microsoft.insights/metrics?api-version=2018-01-01&metricnames=expiredkeys,usedmemory"r = requests.get(url, headers=headers)print(&#39;Status Code: &#39; + str(r))print(&#39;Response Content: &#39; + str(r.content))
#🎜🎜 # L'effet de course est le suivant :

如何使用Python代码获取Azure Redis的监控指标值Powershell

    Loginazure #🎜🎜 #
  • Préparer la commande az Monitor metrics list
  • az cloud set --name AzureChinaCloud
    
    az login
    
    az monitor metrics list --resource /subscriptions/<your subscriptions>/resourceGroups/<resourceGroups>/providers/Microsoft.Cache/Redis/<your redis name> --metric usedmemory --aggregation Maximum --interval PT1M

  • L'effet d'exécution est le suivant :
#🎜 🎜#

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer