2016-04-10 8 views
1

Ich versuche, den Ereignis-Hub Metriken mit dem Rest-API zu ziehen, nach https://msdn.microsoft.com/en-us/library/azure/dn163589.aspx und https://msdn.microsoft.com/en-us/library/azure/mt652158.aspx Lesen Ich habe Python-Code bekam, dass die URL tatsächlich anrufen und eine Antwort erhalten Ich versuche zur Zeit den folgenden CodeErhalten von Azure-Event-Hub-Metriken mit Rest-API?

def get_metrics(subscription, eventhub, cert, specific_partition=None): 
    apiversion = '2014-01' 
    namespace = eventhub['namespace'] 
    eventhubname = eventhub['name'] 
    url = "https://management.core.windows.net/{}/services/ServiceBus/Namespaces/{}/eventhubs/{}/Metrics/requests.total/Rollups/P1D/Values/?$filter=timestamp%20gt%20datetime'2016-04-09T00:00:00.0000000Z'&api-version={}".format(
     subscription, namespace, eventhubname, apiversion) 
    request = requests.Request('GET', url, headers=DEFAULT_HEADERS).prepare() 
    session = requests.Session() 
    if cert is None or not os.path.isfile(cert): 
     raise ValueError('You must give certificate file') 
    session.cert = cert 
    result = session.send(request) 
    return result 

mein Problem mit der uRL ist, wenn in dem Code die uRL unter Verwendung der oben I

<Error xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><Code>InternalError</Code><Message>The server encountered an internal error. Please retry the request.</Message></Error> 

bekommen ich kann die API zur Ausgabe alle möglichen Rollups erhalten und alle möglichen Metriken aber wenn actua zu bekommen versuchen, l Werte es fehlschlägt.

ist etwas in der URL falsch oder ist es ein Fehler in der azurblauen Dokumentierung?

+0

Was sind Ihre 'DEFAULT_HEADERS'? Nur Content-Type und Autorisierung? –

+0

Content-Type und x-ms-Version, Ich benutze Zertifikat für die Sitzung – Srgrn

Antwort

2

In der Regel, wenn dieses Problem auftritt, bedeutet dies, dass etwas mit dem Endpunkt, den wir für die Rest-API kombiniert haben, nicht stimmt, so dass der Dienst beim Parsen des Endpunkts eine Ausnahme auslöst.

Im Vergleich zu meinem erfolgreichen Test, was das interessante ich fand, ist das Problem, das durch den Filter param timestamp ausgelöst wird, dessen erster Buchstabe als Timestamp in der Oberklasse sein sollte. Der folgende Endpunkt funktioniert auf meiner Seite gut. Ich hoffe, es wird dir behilflich sein.

url = "https://management.core.windows.net/{}/services/ServiceBus/Namespaces/{}/eventhubs/{}/Metrics/requests.total/Rollups/P1D/Values/?$filter=Timestamp%20gt%20datetime'2016-04-09T00:00:00.0000000Z'&api-version={}".format(
     subscription, namespace, eventhubname, '2012-03-01') 
+0

Danke, können Sie die Dokumentation auf der azurblauen Website auch aktualisieren? – Srgrn