Skip to content

PrasunAgrawal/PythonAzureVmUtilization

 
 

Repository files navigation

Python Azure VM Utilization

Example on using Docker to fetch metrics from Azure VM

Development Setup

Make a copy of local.env.example and rename to local.env. Edit the file with the necessary credentials for the service principal.

Using Docker

Build the image

docker build --pull --rm -f "dockerfile.dev" -t azurepythonexample:latest "."

Run the image

docker run --rm -it azurepythonexample:latest

# run with an environment file
docker run --rm -it --env-file local.env azurepythonexample:latest

Run the script

#> python main.py

Notes

Should call client.metric_definitions.list to get the exact metric details for each metric. See https://docs.microsoft.com/en-us/rest/api/monitor/metricdefinitions/list

Interesting Metrics for VMs

  • Percentage CPU. The percentage of allocated compute units that are currently in use by the Virtual Machine(s)
  • Disk Read Bytes
  • Disk Write Bytes
  • Network In Total. The number of bytes received on all network interfaces by the Virtual Machine(s) (Incoming Traffic)
  • Network Out Total

Most metrics allow time grain to be any of the following

class TimeGrain(str, Enum):

    pt1_m = "PT1M"
    pt5_m = "PT5M"
    pt15_m = "PT15M"
    pt30_m = "PT30M"
    pt1_h = "PT1H"
    pt6_h = "PT6H"
    pt12_h = "PT12H"
    pt1_d = "PT1D"

Most metrics allow the following Aggregation types

class AggregationType(str, Enum):

    none = "None"
    average = "Average"
    count = "Count"
    minimum = "Minimum"
    maximum = "Maximum"
    total = "Total"

References

About

Example of fetching VM Utilization with Docker and Python

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 100.0%