Pulling metrics from azure storage with the python sdk

Viewed 109

I'm trying to get metrics from azure storage, like transaction_count, ingress, egress, server sucess latency etc.

I am trying with the following code :

from azure.storage.blob import BlobAnalyticsLogging, Metrics, CorsRule, RetentionPolicy

# Create logging settings
logging = BlobAnalyticsLogging(read=True, write=True, delete=True, retention_policy=RetentionPolicy(enabled=True, days=5))

# Create metrics for requests statistics
hour_metrics = Metrics(enabled=True, include_apis=True, retention_policy=RetentionPolicy(enabled=True, days=5))
minute_metrics = Metrics(enabled=True, include_apis=True,retention_policy=RetentionPolicy(enabled=True, days=5))

# Create CORS rules
cors_rule = CorsRule(['www.xyz.com'], ['GET'])
cors = [cors_rule]

# Set the service properties
blob_service_client.set_service_properties(logging, hour_metrics, minute_metrics, cors)
# [END set_blob_service_properties]

# [START get_blob_service_properties]
properties = blob_service_client.get_service_properties()
# [END get_blob_service_properties]

print (properties)

This one does not give an error, but returns the following output:

{'analytics_logging': <azure.storage.blob._models.BlobAnalyticsLogging object at 0x7ffa629d8880>, 'hour_metrics': <azure.storage.blob._models.Metrics object at 0x7ffa629d84c0>, 'minute_metrics': <azure.storage.blob._models.Metrics object at 0x7ffa629d8940>, 'cors': [<azure.storage.blob._models.CorsRule object at 0x7ffa629d8a60>], 'target_version': None, 'delete_retention_policy': <azure.storage.blob._models.RetentionPolicy object at 0x7ffa629d85e0>, 'static_website': <azure.storage.blob._models.StaticWebsite object at 0x7ffa629d8a00>}

I understand that maybe I am missing something, the documentation is quite dense and I don't understand it very well.

Thanks in advance for any possible answers

1 Answers

You would probably want to read the service properties individually, i.E.:

analytics_logging = blob_service_client.get_service_properties().get('analytics_logging')

This way you should be able to process (or read) the output further in your code.

Related