[英]How to get how much requests units consumed by cosmos query in Python SDK API
如何使用 python sdk 检查 Azure comsos DB 查询中每个请求消耗了多少请求单位。
下面的代码仅打印来自特定 ReadItem 的响应的 output,我也对查询消耗了多少请求单元感兴趣。
# -------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See LICENSE.txt in the project root for
# license information.
# -------------------------------------------------------------------------
import azure.cosmos.cosmos_client as cosmos_client
import azure.cosmos.exceptions as exceptions
from azure.cosmos.partition_key import PartitionKey
from config import configs
HOST = configs['host']
MASTER_KEY = configs['key']
DATABASE_ID = configs['database_id']
CONTAINER_ID = configs['container_id']
client = cosmos_client.CosmosClient(HOST, {'masterKey': MASTER_KEY} )
def read_item(container, doc_id):
id = "9fedcb0991553b94b6e79595c9c26922b3c480940fc024fe4acd7dbad122d66b"
pk= "/c/file1"
response = container.read_item(item=id, partition_key=pk)
print(response)
def run_sample():
try:
# setup database for this sample
db = client.create_database_if_not_exists(id=DATABASE_ID)
# setup container for this sample
container = db.create_container_if_not_exists(id=CONTAINER_ID, partition_key=PartitionKey(path='/file_path', kind='Hash'))
read_item(container)
except exceptions.CosmosHttpResponseError as e:
print('\nrun_sample has caught an error. {0}'.format(e.message))
finally:
print("\nrun_sample done")
if __name__ == '__main__':
run_sample()
我尝试了以下选项
request_charge = client.last_response_headers['x-ms-request-charge']
但是我遇到了以下错误
run_sample done
Traceback (most recent call last):
File "/Users/vcimalap/Library/CloudStorage/OneDrive-Microsoft/my_code/my_test_code/k8s/smb.yaml/cosmos_db/query.py", line 197, in <module>
run_sample()
File "/Users/vcimalap/Library/CloudStorage/OneDrive-Microsoft/my_code/my_test_code/k8s/smb.yaml/cosmos_db/query.py", line 175, in run_sample
read_item(container, item)
File "/Users/vcimalap/Library/CloudStorage/OneDrive-Microsoft/my_code/my_test_code/k8s/smb.yaml/cosmos_db/query.py", line 55, in read_item
request_charge = client.last_response_headers['x-ms-request-charge']
AttributeError: 'CosmosClient' object has no attribute 'last_response_headers'
您需要访问 container.client_connection而不是客户端,
request_charge = container.client_connection.last_response_headers['x-ms-request-charge']
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.