Table of Contents
Problem Description
Solution
In the Access control (IAM) page of Redis, search through the application name in step 1 and grant permission to Monitoring Reader
Step 3: Write Python code, use requests to send psot, get request
Powershell
Home Database Redis How to use Python code to obtain monitoring indicator values ​​​​of Azure Redis

How to use Python code to obtain monitoring indicator values ​​​​of Azure Redis

May 28, 2023 am 11:16 AM
python redis

Problem Description

Through the Metrics monitoring page, we can know the running status and various indicators of the current resources (such as Redis). What if we need to download indicators locally or generate JSON data and import it to a third-party monitoring platform? Can Azure export various indicator data through Python code or Powershell script?

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

Solution

Yes!​ ​ PowerShell command can use Get-AzMetric or az monitor metrics list command to obtain the Metrics value of the resource.

  • Get-AzMetric:Gets the metric values ​​of a resource. https://docs.microsoft.com/en-us/powershell/module /az.monitor/get-azmetric?view=azps-5.4.0&viewFallbackFrom=azps-5.2.0

  • ## az monitor metrics list: List the metric values ​​for a resource. https://docs.microsoft.com/en-us/cli/azure/monitor/metrics?view=azure-cli-latest#az_monitor_metrics_list

And Using Python code, you can use Metrics' REST API to implement

  • Metrics – List: Lists the metric values ​​for a resource. https://docs .microsoft.com/en-us/rest/api/monitor/metrics/list

  • Register the application in AAD to obtain the Access Token for accessing Redis Metrics in Python code: (Apply The program is registered to the Microsoft identity platform: https://docs.azure.cn/zh-cn/active-directory/develop/quickstart-register-app)

Note: You must first log in to Azure to use Powershell. Use the command Connect-AzAccount -Environment AzureChinaCloud or az cloud set –name AzureChinaCloud and az login.

To use Python code, you need to first obtain the Token to access Redis Metrics. To obtain the Token, you can register an application in Azure AD, and then give the application the reader permission in Redis access control to read Metris data.

Execution steps

Python

Step 1: Register AAD application, copy application ID, client access password

  • Log in to the Azure platform, enter the AAD page, click

    App registrations: https://portal.azure.cn/?l=en.en-us#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredApps

  • Click the "

    New Registration" button, enter the application name, leave other values ​​as default, click Save

  • After the creation is successful, enter the application page , import it to the "

    Certificates & secrets" page, create the Client Secret you need to use and copy it. In the third step, you need to use

  • to copy the ## on the application page. #Tenant ID, Applicaiton ID

    needs to be used in the third step of the code

See the following animation for the specific operation process:

如何使用Python代码获取Azure Redis的监控指标值Step 2: Grant permission to obtain Metrics

In the Access control (IAM) page of Redis, search through the application name in step 1 and grant permission to Monitoring Reader

如何使用Python代码获取Azure Redis的监控指标值Note: If permission is not granted, a similar error will be reported in the code:

##Status Code: Response Content: b'{"error":{"code":"AuthorizationFailed","message":"The client 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' with object id 'xxxxxxxx -xxxx-xxxx-xxxx-36166b5f7276' does not have authorization to perform action 'microsoft.insights/metrics/read' over scope '/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/xxxx-rg/providers/Microsoft .Cache/Redis/xxxx/providers/microsoft.insights' or the scope is invalid. If access was recently granted, please refresh your credentials."}}'

Step 3: Write Python code, use requests to send psot, get request

  • There are two main parts in the code: one is to obtain Access Token, and the other is to obtain Metrics Data

  • The highlighted content needs to be replaced with the corresponding resource information and the information prepared in the first step

  • After obtaining the Access Token In the Body content, grant_type is a fixed value, which is client_credentials. The value of resource is the management endpoint of azure in China: 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))
Copy after login

The operation effect is as follows:

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

Powershell

  • Log in to azure

  • Prepare az monitor metrics list command

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
Copy after login

The execution effect is as follows:

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


The above is the detailed content of How to use Python code to obtain monitoring indicator values ​​​​of Azure Redis. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

What is the best way to implement efficient key-value pair storage in Go? What is the best way to implement efficient key-value pair storage in Go? Apr 02, 2025 pm 01:54 PM

The correct way to implement efficient key-value pair storage in Go language How to achieve the best performance when developing key-value pair memory similar to Redis in Go language...

How to choose the solution for data consistency between MySQL and Redis: the difference between delayed double deletion and first modifying the database and then deleting the cache and applicable scenarios? How to choose the solution for data consistency between MySQL and Redis: the difference between delayed double deletion and first modifying the database and then deleting the cache and applicable scenarios? Apr 02, 2025 am 11:57 AM

Two solutions for data consistency between MySQL and Redis: delayed double deletion and first modifying the database and then deleting cache are used to handle data consistency problems in MySQL and Redis, ...

Does XML modification require programming? Does XML modification require programming? Apr 02, 2025 pm 06:51 PM

Modifying XML content requires programming, because it requires accurate finding of the target nodes to add, delete, modify and check. The programming language has corresponding libraries to process XML and provides APIs to perform safe, efficient and controllable operations like operating databases.

How to define an enum type in protobuf and associate string constants? How to define an enum type in protobuf and associate string constants? Apr 02, 2025 pm 03:36 PM

Issues of defining string constant enumeration in protobuf When using protobuf, you often encounter situations where you need to associate the enum type with string constants...

In Go, how to build efficient key-value pair memory? In Go, how to build efficient key-value pair memory? Apr 02, 2025 pm 05:06 PM

In Go language, how to achieve efficient key-value pair memory is a question worth discussing. Many developers may think of using maps to implement this...

How to modify comment content in XML How to modify comment content in XML Apr 02, 2025 pm 06:15 PM

For small XML files, you can directly replace the annotation content with a text editor; for large files, it is recommended to use the XML parser to modify it to ensure efficiency and accuracy. Be careful when deleting XML comments, keeping comments usually helps code understanding and maintenance. Advanced tips provide Python sample code to modify comments using XML parser, but the specific implementation needs to be adjusted according to the XML library used. Pay attention to encoding issues when modifying XML files. It is recommended to use UTF-8 encoding and specify the encoding format.

How to modify content using SAX in XML How to modify content using SAX in XML Apr 02, 2025 pm 06:39 PM

Modifying XML with SAX is an event-based strategy involving the following steps: Read XML content and listen for element events. Determine whether the element needs to be modified. Modify in text events. Write the modified content in the end element event.

See all articles