Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Försiktighet
Det här är en artikel i Gen1.
I den här artikeln beskrivs olika REST Query-API:er. REST-API:er är tjänstslutpunkter som stöder uppsättningar av HTTP-åtgärder (metoder), som gör att du kan fråga Azure Time Series Insights Gen1-miljöer.
Viktigt!
- Azure Time Series Insights Gen1 använder HTTPS-protokollet för API:erna Get Environments, Get Environment Availability, Get Metadata, Get Environment Events och Get Environment Aggregates .
- Azure Time Series Insights Gen1 använder WSS-protokollet (WebSocket Secure) för API:erna Get Environment Events Streamed och Get Aggregates Streamed .
Hämta miljö-API
API:et Get Environments returnerar listan över miljöer som anroparen har behörighet att komma åt.
- Slutpunkt och åtgärd: - GET https://api.timeseries.azure.com/environments?api-version=2016-12-12
- Exempel på begärandetext: Ej tillämpligt 
- Exempel på svarstext: - { "environments": [ { "displayName":"Sensors", "environmentFqdn": "00000000-0000-0000-0000-000000000000.env.timeseries.azure.com", "environmentId":"00000000-0000-0000-0000-000000000000", "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/RdxProdAssetsEastUs/providers/Microsoft.TimeSeriesInsights/environments/Sensors", "roles": [ "Reader", "Contributor" ] } ] }- Anmärkning - Svarsegenskapen environmentFqdn är ett unikt, fullständigt kvalificerat domännamn för den miljö som används i fråge-API-begäranden per miljö. 
Hämta API för miljötillgänglighet
API:et Get Environment Availability returnerar fördelningen av antalet händelser över den tidsstämpel för händelsen som $ts. Miljötillgängligheten cachelagras och svarstiden beror inte på antalet händelser i en miljö.
Tips/Råd
API:et Get Environment Availability kan användas för att initiera en gränssnittsupplevelse på klientsidan.
- Slutpunkt och åtgärd: - GET https://<environmentFqdn>/availability?api-version=2016-12-12
- Exempel på begärandetext: Ej tillämpligt 
- Exempel på svarstext: - { "range": { "from": "2016-08-01T01:02:03Z", "to": "2016-08-31T03:04:05Z" }, "intervalSize": "1h", "distribution": { "2016-08-01T00:00:00Z": 123, "2016-08-31T03:00:00Z": 345 } }- Ett tomt objekt returneras för miljöer utan händelser. 
Hämta API för miljömetadata
API:et Get Environment Metadata returnerar miljömetadata för ett visst sökintervall. Metadata returneras som en uppsättning egenskapsreferenser. Azure Time Series Insights Gen1 cachelagrar och approximerar metadata internt och kan returnera fler egenskaper som finns i de exakta händelserna i sökintervallet.
- Slutpunkt och åtgärd: - POST https://<environmentFqdn>/metadata?api-version=2016-12-12
- Struktur för inkommande nyttolast: - Sökspan-klausul (obligatoriskt)
 
- Exempel på begärandetext: - { "searchSpan": { "from": {"dateTime":"2016-08-01T00:00:00.000Z"}, "to": {"dateTime":"2016-08-31T00:00:00.000Z"} } }
- Exempel på svarstext: - { "properties": [ { "name": "sensorId", "type": "String" }, { "name": "sensorValue", "type": "Double" }, { "name": "iothub-connection-device-id", "type": "String" } ] }- En tom - propertiesmatris returneras när miljön är tom eller om det inte finns några händelser i ett sökintervall.- Inbyggda egenskaper returneras inte i listan över egenskaper. 
Hämta API för miljöhändelser
API:et Get Environment Events returnerar en lista över råhändelser som matchar sökintervallet och predikatet.
- Slutpunkt och åtgärd: - POST https://<environmentFqdn>/events?api-version=<apiVersion>
- Struktur för inkommande nyttolast: - Sökspan-klausul (obligatoriskt)
- Predikatsats (valfritt)
- Limit-klausul (obligatoriskt)
 
- Exempel på begärandetext: - { "searchSpan": { "from": { "dateTime": "2019-12-30T00:00:00.000Z" }, "to": { "dateTime": "2019-12-31T23:00:00.000Z" } }, "predicateString": "PointValue.Double = 3.14", "top": { "sort": [ { "input": { "builtInProperty": "$ts" }, "order": "Asc" } ], "count": 1000 } }- Anmärkning - Kapslad sortering (d.v.s. sortering efter två eller flera egenskaper) stöds för närvarande inte.
- Händelser kan sorteras och begränsas till toppen.
- Sortering stöds för alla egenskapstyper. Sorteringen är beroende av jämförelseoperatorer som har definierats för booleska uttryck.
 
- Exempel på svarstext: - { "warnings": [], "events": [ { "schema": { "rid": 0, "$esn" : "buildingsensors", "properties" : [{ "name" : "sensorId", "type" : "String" }, { "name" : "sensorValue", "type" : "String" }] }, "$ts" : "2016-08-30T23:20:00Z", "values" : ["IndoorTemperatureSensor", 72.123] }, { "schemaRid" : 0, "$ts" : "2016-08-30T23:21:00Z", "values" : ["IndoorTemperatureSensor", 72.345] } ] }
Hämta strömmat API för miljöhändelser
API:et Get Environment Events Streamed returnerar en lista över råhändelser som matchar sökintervallet och predikatet.
Det här API:et använder WebSocket Secure Protocol för att utföra strömning och returnera partiella resultat. Den returnerar alltid ytterligare händelser. Det innebär att det nya meddelandet är ett tillägg till det föregående. Det nya meddelandet innehåller nya händelser som inte fanns i det tidigare meddelandet. Det tidigare meddelandet ska behållas när det nya meddelandet läggs till.
- Slutpunkt och åtgärd: - GET wss://<environmentFqdn>/events?api-version=<apiVersion>
- Struktur för inkommande nyttolast: - Sökspan-klausul (obligatoriskt)
- Predikatsats (valfritt)
- Limit-klausul (obligatoriskt)
 
- Exempel på begäran: - { "headers" : { "Authorization":"Bearer <YOUR_AAD_OAUTH_TOKEN>", "x-ms-client-request-id" : "132gae-w343-41a1-2342-w23ta4532" }, "content": { "searchSpan": { "from": "2017-04-30T23:00:00.000Z", "to": "2017-05-01T00:00:00.000Z" }, "top": { "sort": [ { "input": { "builtInProperty": "$ts" }, "order": "Asc" } ], "count": 1000 } } }- Anmärkning - Kapslad sortering (d.v.s. sortering efter två eller flera egenskaper) stöds för närvarande inte.
- Händelser kan sorteras och begränsas till toppen.
- Sortering stöds för alla egenskapstyper. Sorteringen är beroende av jämförelseoperatorer som har definierats för booleska uttryck.
 
- Exempel på svarsmeddelande: - { "headers": { "x-ms-request-id": "a325-a345-sy43-w332-a4qat36a2262" }, "content": { "events": [ { "schema": { "rid": 0, "$esn": "devicedata", "properties": [ { "name": "Id", "type": "String" }, { "name": "TemperatureControlLevel", "type": "Double" }, { "name": "Type", "type": "String" }, { "name": "UnitVersion", "type": "String" }, { "name": "Station", "type": "String" }, { "name": "ProductionLine", "type": "String" }, { "name": "Factory", "type": "String" }, { "name": "Timestamp", "type": "DateTime" } ] }, "$ts": "2017-04-30T23:00:00Z", "values": [ "82faa3c1-f11d-44f5-a1ca-e448f6123eee", 0.9835468282931982, "temp control rate", "1.1.7.0", "Station5", "Line1", "Factory2", "2017-04-30T23:00:00Z" ] }, { "schemaRid": 0, "$ts": "2017-04-30T23:00:00Z", "values": [ "acb2f926-62cc-4a88-9246-94a26ebcaee3", 0.8542095381579537, "temp control rate", "1.1.7.0", "Station2", "Line1", "Factory3", "2017-04-30T23:00:00Z" ] } ] }, "warnings": [], "percentCompleted": 100 }
Hämta API för miljöaggregeringar
API:et Get Environment Aggregates grupperar händelser efter en angiven egenskap eftersom det eventuellt mäter värdena för andra egenskaper.
Anmärkning
Bucketgränser stöder värdena 10ⁿ, 2×10ⁿ eller 5×10ⁿ för att justeras med och bättre stödja numeriska histogram.
- Slutpunkt och åtgärd: - POST https://<environmentFqdn>/aggregates?api-version=<apiVersion>
- Struktur för inkommande nyttolast: - Sökspan-klausul (obligatoriskt)
- Predikatsats (valfritt)
- Aggregatklausul (obligatoriskt)
 
- Exempel på begärandetext: - { "searchSpan": { "from": { "dateTime": "2019-12-30T00:00:00.000Z" }, "to": { "dateTime": "2019-12-31T23:00:00.000Z" } }, "predicateString": "PointValue.Double > 1000", "aggregates": [ { "dimension": { "uniqueValues": { "input": { "property": "iothub-connection-device-id", "type": "String" }, "take": 100 } }, "aggregate": { "dimension": { "dateHistogram": { "input": { "builtInProperty": "$ts" }, "breaks": { "size": "1h" } } }, "measures": [ { "min": { "input": { "property": "series.flowRate", "type": "Double" } } }, { "count": {} } ] } } ] }
- Exempel på svarstext: - { "aggregates": [ { "dimension": [ "Test-Device-A11342" ], "aggregate": { "dimension": [ "2019-12-30T23:00:00Z", "2019-12-31T00:00:00Z" ], "measures": [ [ [ 0.319668575730514, 2678 ], [ 0.08442680357734211, 1238 ] ] ] } } ], "warnings": [] }- Om inga måttuttryck anges och listan över händelser är tom kommer svaret att vara tomt. - Om det finns mått innehåller svaret en enda post med ett - nulldimensionsvärde, ett- 0värde för antal och ett- nullvärde för andra typer av mått.
Hämta strömmat API för miljöaggregeringar
API:et Get Environment Aggregates Streamed grupperar händelser efter en angiven egenskap eftersom det eventuellt mäter värdena för andra egenskaper:
- Det här API:et använder WebSocket Secure Protocol för strömning och för att returnera partiella resultat.
- Den returnerar alltid en ersättning (ögonblicksbild) av alla värden.
- Tidigare paket kan tas bort av klienten.
Anmärkning
Bucketgränser stöder värdena 10ⁿ, 2×10ⁿ eller 5×10ⁿ för att justeras med och bättre stödja numeriska histogram.
- Slutpunkt och åtgärd: - GET wss://<environmentFqdn>/aggregates?api-version=<apiVersion>
- Struktur för inkommande nyttolast: - Sökspan-klausul (obligatoriskt)
- Predikatsats (valfritt)
- Aggregatklausul (obligatoriskt)
 
- Exempel på begäran: - { "headers":{ "Authorization":"Bearer <YOUR_AAD_OAUTH_TOKEN>" }, "content":{ "predicate":{ "predicateString":"" }, "searchSpan":{ "from":"2017-04-30T23:00:00.000Z", "to":"2017-05-01T00:00:00.000Z" }, "aggregates":[{ "dimension":{ "dateHistogram":{ "input":{ "builtInProperty":"$ts" }, "breaks":{ "size":"1m" } } }, "measures":[{ "count":{} }] }] } }
- Exempel på svarsmeddelanden: - { "headers":{ "x-ms-request-id":"abc3243-23af-23ad-3224s-a32525age" }, "content":[ { "dimension":[ "2017-04-30T23:00:00Z", "2017-04-30T23:01:00Z", "2017-04-30T23:02:00Z", "2017-04-30T23:03:00Z", "2017-04-30T23:04:00Z" ], "measures":[ [ 722 ], [ 721 ], [ 722 ], [ 721 ], [ 722 ] ] } ], "warnings":[ ], "percentCompleted":100 }- Om inga måttuttryck anges och listan över händelser är tom kommer svaret att vara tomt. - Om det finns mått innehåller svaret en enda post med ett - nulldimensionsvärde, ett- 0värde för antal och ett- nullvärde för andra typer av mått.
Gränser
Följande gränser tillämpas under frågekörningen för att rättvist utnyttja resurser mellan flera miljöer och användare:
| Tillämpliga API:er | Gränsnamn | Gränsvärde | SKU:er som påverkas | Noteringar | 
|---|---|---|---|---|
| Allt | Maximal storlek på begäran | 32 kB | S1, S2 | |
| Hämta miljötillgänglighet, Hämta miljömetadata, Hämta miljöhändelser, Hämta miljöaggregeringar strömmade | Maximalt antal samtidiga begäranden per miljö | 10 | S1, S2 | |
| Hämta miljöhändelser, Hämta strömmade miljöaggregeringar | Maximal svarsstorlek | 16 MB | S1, S2 | |
| Hämta miljöhändelser, Hämta strömmade miljöaggregeringar | Maximalt antal unika egenskapsreferenser i predikat, inklusive predikatstränguttryck | 50 | S1, S2 | |
| Hämta miljöhändelser, Hämta strömmade miljöaggregeringar | Maximalt antal fulltextsöktermer utan egenskapsreferens i predikatsträngen | 2 | S1, S2 | Exempel: HAS 'abc','abc' | 
| Hämta miljöhändelser | Maximalt antal händelser som svar | 10 000 | S1, S2 | |
| Hämta strömmade miljöaggregeringar | Max antal dimensioner | 5 | S1, S2 | |
| Hämta strömmade miljöaggregeringar | Maximal total kardinalitet för alla dimensioner | 150 000 | S1, S2 | |
| Hämta strömmade miljöaggregeringar | Maximalt antal åtgärder | 20 | S1, S2 | 
Felhantering och lösning
Beteendet Egenskapen hittades inte
För egenskaper som refereras i frågan, antingen som en del av predikat eller en del av aggregeringar (mått), försöker frågan som standard matcha egenskapen i miljöns globala sökintervall. Om egenskapen hittas lyckas frågan. Om egenskapen inte hittas misslyckas frågan.
Du kan dock ändra det här beteendet för att behandla egenskaper som befintliga men med null värden om de inte finns i miljön. Det gör du genom att ange det valfria begärandehuvudet x-ms-property-not-found-behavior med värdet UseNull.
Möjliga värden för begärandehuvudet är UseNull or ThrowError (standard). När du anger UseNull som värde lyckas frågan även om egenskaperna inte finns, och svaret innehåller varningar som visar de egenskaper som inte hittas.
Rapportera olösta egenskaper
Du kan ange egenskapsreferenser för predikat-, dimensions- och måttuttryck. Om en egenskap med ett visst namn och en viss typ inte finns för ett angivet sökintervall görs ett försök att matcha en egenskap under ett globalt tidsintervall.
Beroende på om lösningen lyckas kan följande varning eller fel utlösas:
- Om en egenskap finns i miljön under ett globalt tidsintervall löses den på rätt sätt och en varning genereras för att meddela dig att värdet för den här egenskapen är nullför ett visst sökintervall.
- Om en egenskap inte finns i miljön genereras ett fel och frågekörningen misslyckas.
Felsvar
Om frågekörningen misslyckas innehåller JSON-svarsnyttolasten ett felsvar med följande struktur:
{
  "error" : {
    "code" : "...",
    "message" : "...",
    "innerError" : {  
      "code" : "...",
      "message" : "...",
    }
  }
}
Här är innerError valfritt. Förutom grundläggande fel, till exempel en felaktig begäran, returneras följande fel:
| HTTP-statuskod | Felkod | Exempel på felmeddelande | Möjliga inre felkoder | 
|---|---|---|---|
| 400 | OgiltigApiVersion | "API-version 2016 stöds inte. Versioner som stöds är '2016-12-12'." | |
| 400 | Ogiltig Inmatning | "Det går inte att tolka predikatsträngen." | PredicateStringParseError | 
| 400 | Ogiltig Inmatning | "Det går inte att översätta predikatsträngen." | InvalidTypes,LimitExceeded,MissingOperand,InvalidPropertyType, ,InvalidLiteral,PropertyNotFound | 
| 400 | Ogiltig Inmatning | "Flera aggregeringar stöds inte." | |
| 400 | Ogiltig Inmatning | "Det gick inte att hitta predikategenskapen." | PropertyNotFound | 
| 400 | Ogiltig Inmatning | "Det gick inte att hitta mätegenskapen." | PropertyNotFound | 
| 400 | Ogiltig Inmatning | "Det gick inte att hitta dimensionsegenskapen." | PropertyNotFound | 
| 400 | Ogiltig Inmatning | "Antalet åtgärder har överskridit gränsen." | NumberOfMeasuresExceededLimit | 
| 400 | Ogiltig Inmatning | "Det sammanlagda djupet har överskridit gränsvärdet." | AggregateDepthExceededLimit | 
| 400 | Ogiltig Inmatning | "Den totala kardinaliteten har överskridit gränsen." | TotalCardinalityExceededLimit | 
| 400 | Ogiltig Inmatning | "Egenskapen 'från' saknas." | BreaksPropertyMissing | 
| 400 | Ogiltig Inmatning | "Egenskapen 'till' saknas." | BreaksPropertyMissing | 
| 400 | Ogiltig Inmatning | "Begärans storlek har överskridit gränsen." | RequestSizeExceededLimit | 
| 400 | Ogiltig Inmatning | "Svarsstorleken har överskridit gränsen." | ResponseSizeExceededLimit | 
| 400 | Ogiltig Inmatning | "Antalet händelser har överskridit gränsen." | EventCountExceededLimit | 
| 400 | Ogiltig Inmatning | "Antalet egenskapsreferenser har överskridit gränsen." | PropertyReferenceCountExceededLimit | 
| 400 | Ogiltig metod | "Endast WebSocket-begäranden tillåts på sökvägen 'aggregat'." | |
| 400 | InvalidUrl | "Det gick inte att tolka begärande-URL:en '/a/b'." | |
| 408 | RequestTimeout | "Tidsgränsen för begäran överskreds efter '30' sekunder." | |
| 503 | För många förfrågningar | "Antalet samtidiga förfrågningar på '10' har överskridits för miljön '95880732-01b9-44ea-8d2d-4d764dfe1904'." | EnvRequestLimitExceeded | 
Varningar
Ett Query API-svar kan innehålla en lista med varningar som "warnings" post under roten för HTTP-svaret eller WebSocket-svarsmeddelandet. För närvarande genereras varningar om egenskapen inte hittas för ett visst sökintervall utan hittas i en miljö för ett globalt tidsintervall. Den genereras också när rubriken x-ms-property-not-found-behavior är inställd UseNull på och en egenskap som refereras inte finns ens i det globala sökintervallet.
Varje varningsobjekt kan innehålla följande fält:
| Fältnamn | Fälttyp | Noteringar | 
|---|---|---|
| kod | String | En av de fördefinierade varningskoderna | 
| meddelande | String | Ett detaljerat varningsmeddelande | 
| mål | String | En punktavgränsad JSON-sökväg till posten för JSON-indatanyttolasten som orsakar varningen | 
| varningDetaljer | Ordlista | Valfri; Ytterligare varningsinformation (till exempel positionen i predikatsträngen) | 
I följande kod visas exempel på varningar för predikat, predikatsträng i predikat, dimension och mått:
"warnings": [
  {
    "code": "PropertyNotFound",
    "message": "Predicate property 'X' of type 'String' is not found in local search span.",
    "target": "predicate.and[0].eq.left.property.name"
  },
  {
    "code": "PropertyNotFound",
    "message": "Predicate string property 'X' is not found in local search span.",
    "target": "predicate.and[1].predicateString",
    "warningDetails": {
      "startPos": 1,
      "endPos": 2,
      "line": 1,
      "col": 1
    }
  },
  {
    "code": "PropertyNotFound",
    "message": "Dimension property 'X' of type 'String' is not found in local search span.",
    "target": "aggregates.dimension.uniqueValues.input.property"
  },
  {
    "code": "PropertyNotFound",
    "message": "Measure property 'X' of type 'String' is not found in local search span.",
    "target": "aggregates.aggregates.measures[0].min.input.property"
  }
]
Se även
Mer information om programregistrering och Azure Active Directory-programmeringsmodellen finns i Azure Active Directory för utvecklare.
Mer information om parametrar för begäran och autentisering finns i Autentisering och auktorisering.
Verktyg som hjälper dig att testa HTTP-begäranden och svar är:
- Spelman. Den här kostnadsfria webbfelsökningsproxyn kan fånga upp dina REST-begäranden, så att du kan diagnostisera HTTP-begäran och svarsmeddelanden.
- JWT.io. Du kan använda det här verktyget för att snabbt dumpa anspråken i din ägartoken och sedan verifiera deras innehåll.
- Brevbärare. Det här är ett kostnadsfritt testverktyg för HTTP-begäran och svar för felsökning av REST-API:er.
Läs mer om Azure Time Series Insights Gen1 i Gen1-dokumentationen.