Citrix Analytics ODATA API
Übersicht
Die CAS ODATA v4 REST API hilft Ihnen, aggregierte Daten einfach abzurufen. Derzeit unterstützen wir Benutzer beim Abrufen von Sitzungsdaten aus der CAS-Leistungsdatenquelle.
Dieser Artikel bietet eine Anleitung zur Verwendung der APIs.
API-Spezifikationen
Authentifizierung
Die Implementierung verwendet Citrix Cloud™ Bearer-Token zur Authentifizierung.
Referenzen:
Citrix Cloud Client-ID und Citrix Cloud Client-Geheimnis
Im Folgenden finden Sie eine Beispielanfrage zum Abrufen des Tokens.
Beispielanfrage:
POST https://api.cloud.com/cctrustoauth2/{customerid}/tokens/clients
Accept: application/json
Content-Type: application/x-www-form-urlencoded
Body: grant_type=client_credentials&client_id={client_id}&client_secret={client_secret}
<!--NeedCopy-->
Beispielantwort:
HTTP/1.1 200 OK
Content-Type: application/json
...
{
"token_type": "bearer",
"access_token": "ey1..",
"expires_in": "3600"
}
<!--NeedCopy-->
Hinweis:
Die Gültigkeitsdauer des Bearer-Tokens beträgt 1 Stunde. Generieren Sie es neu, wenn Sie die Abfrage nach einer Stunde durchführen müssen.
Endpunkte
Global: https://api.cloud.com/casodata
Beispiel:
https://api.cloud.com/casodata/sessions?year=2023&month=04&day=14 ruft die aggregierten Sitzungsdaten für das Datum 2023/04/14 (UTC) ab.
Dienstpfad
Dieser Abschnitt enthält Informationen zu Dienstpfaden und Entitätsnamen wie Sitzungen, Maschinen und Benutzern. Sehen Sie sich beispielsweise den folgenden Beispiel-Dienstpfad an:
/sessions?year=2023&month=04&day=14
<!--NeedCopy-->
Die Parameter Jahr, Monat und Tag sind obligatorisch und werden im UTC-Format hinzugefügt.
Die Daten einer bestimmten Stunde werden ebenfalls unterstützt, der Pfad lautet wie folgt:
/sessions?year=2023&month=04&day=14&hour=10 (Ruft die Daten vom 14.04.2023 10:00 Uhr ab)
<!--NeedCopy-->
HTTP-Header
| Schlüssel | Beispiel | Wert | Obligatorisch |
|---|---|---|---|
| Authorization | CwsAuth bearer= | Ja | |
| Citrix-CustomerId | Ja | ||
| Content-Type | application/json | Ja | |
| Citrix-TransactionId | Nein | ||
| Accept-Encoding | gzip | Nein | |
Systemoperatoren
Die CAS ODATA API unterstützt die folgenden grundlegenden OData-Systemoptionen:
| Systemoption | Beispiel |
|---|---|
| $select | https:///casodata/sessions?year=2023&month=04&day=14&$select=sessionKey,sessionScore,sessionState |
| $orderby | https:///casodata/sessions?year=2023&month=04&day=14&$select=sessionKey,sessionScore,sessionState&$orderby=sessionScore desc |
| $top | https:///casodata/sessions?year=2023&month=04&day=14&$select=sessionKey,sessionScore,sessionState&$top=1 |
| $top&$skip | https:///casodata/sessions?year=2023&month=04&day=14&$select=sessionKey,sessionScore,sessionState&$top=10&$skip=20 |
| $count | https:///casodata/sessions?year=2023&month=04&day=14&$count=true |
| $filters | https:///casodata/sessions?year=2023&month=04&day=14&$select=sessionKey,sessionScore,sessionState&$filter=sessionScore ne 20 |
Hinweis:
Fügen Sie keine Leerzeichen in den Wert der Option
$selectein.
$filter-Operatoren und -Funktionen
Die CAS ODATA API unterstützt die folgenden logischen OData-Operatoren und Zeichenkettenfunktionen für die Option $filter:
| Kategorie | Operatoren | Beispiele |
|---|---|---|
| Logische Operatoren
|
eq/ne/gt/lt/le/ge | https:///casodata/sessions?year=2023&month=04&day=14&$select=sessionKey,sessionScore,sessionState&$filter=sessionScore ge 20 |
| not | https:///casodata/sessions?year=2023&month=04&day=14&$select=sessionKey,sessionScore,sessionState,deliveryGroupName&$filter=not(deliveryGroupName eq null) | |
| and/or | https:///casodata/sessions?year=2023&month=04&day=14&$select=sessionKey,sessionScore,sessionState,logonDuration&$filter=sessionState eq ‘5’ and (sessionScore le 20 or logonDuration gt 19.914) | |
| in | https:///casodata/sessions?year=2023&month=04&day=14&$select=sessionKey,sessionScore,sessionState,logonDuration&$filter=sessionState in (‘5’,’3’) | |
| not in | https:///casodata/sessions?year=2023&month=04&day=14&$select=sessionKey,sessionScore,sessionState,logonDuration&$filter=not (sessionState in (‘5’,’3’)) | |
| Zeichenkettenfunktionen
|
contains | https:///casodata/sessions?year=2023&month=04&day=14&$select=sessionKey,sessionScore,sessionState,deliveryGroupName&$filter=contains(deliveryGroupName,’PRD’) |
| startswith | https:///casodata/sessions?year=2023&month=04&day=14&$select=sessionKey,sessionScore,sessionState,deliveryGroupName&$filter=not endswith(deliveryGroupName,’CVAD Development’) | |
| endswith | https:///casodata/sessions?year=2023&month=04&day=14&$select=sessionKey,sessionScore,sessionState,deliveryGroupName&$filter=startswith(sessionKey,’09c3268e’) |
Entitäten und Datenattribute
Die folgenden drei CAS-Leistungsentitäten werden unterstützt:
Anwendungsbeispiele
Metadaten abrufen und Spalten für die Abfrage auswählen
-
Abrufen der Metadaten
Beispielanfrage:
curl --location 'https://api.cloud.com/casodata/$metadata' \ --header 'Authorization: CwsAuth bearer=eyJhbGciOiJSUzI1NiIsInR5.....' \ --header 'Citrix-CustomerId: qt64gkrzji7h' \ --header 'Content-Type: application/json' <!--NeedCopy-->Beispielantwort:
<?xml version="1.0" encoding="UTF-8"?> <edmx:Edmx Version="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx"> <edmx:DataServices> <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="cas.odata.v1"> <EntityType Name="session"> <Property Name="timestamp" Type="Edm.String"></Property> <Property Name="sessionKey" Type="Edm.String"></Property> <Property Name="sessionScore" Type="Edm.Double"></Property> <Property Name="sessionState" Type="Edm.String"></Property> ... <Property Name="sessionLaunchStatus" Type="Edm.Int32"></Property> <Property Name="sessionLaunchStatusCustom" Type="Edm.String"></Property> </EntityType> <EntityContainer Name="Container"> <EntitySet Name="sessions" EntityType="cas.odata.v1.session" IncludeInServiceDocument="false"></EntitySet> </EntityContainer> </Schema> </edmx:DataServices> </edmx:Edmx> <!--NeedCopy--> -
Wählen Sie die Spalten
sessionKey,sessionScoreundsessionStatefür die Abfrage ausBeispielanfrage:
curl --location 'https://api.cloud.com/casodata/sessions?year=2023&month=04&day=14&%24select=sessionKey%2CsessionScore% 2CsessionState' \ --header 'Authorization: CwsAuth bearer=eyJhbGciOiJSUzI1NiIsInR5.....' \ --header 'Citrix-CustomerId: qt64gkrzji7h' \ --header 'Content-Type: application/json' <!--NeedCopy-->Beispielantwort:
{ "@odata.context": "$metadata#sessions(sessionKey,sessionScore,sessionState)/$entity", "value": [ { "sessionKey": "009e7f0f-5707-4083-934f-24d8ad5e91f8", "sessionScore": -1.0, "sessionState": "2" }, ... { "sessionKey": "ff0504e3-0867-414a-b0b2-beb73f06fdad", "sessionScore": 0.0, "sessionState": "5" } ] } <!--NeedCopy-->
Alle Daten eines bestimmten Tages mit Paginierung abrufen
Die Standardbegrenzung der Abfrage beträgt 1000 Zeilen.
Der Benutzer kann den Wert der Option $top festlegen, um die Ergebniszeilen in der Abfrage zu begrenzen. In diesem Szenario wird der Link zur nächsten Seite am Ende der Abfrageantwort bereitgestellt.
Beispielanfrage:
curl --location 'https://api.cloud.com/casodata/sessions?year=2023&month=04&day=14&%24top=100' \
--header 'Authorization: CwsAuth bearer=eyJhbGciOiJSUzI1NiIsInR5.....' \
--header 'Citrix-CustomerId: qt64gkrzji7h' \
--header 'Content-Type: application/json'
<!--NeedCopy-->
Beispielantwort:
{
"@odata.context": "$metadata#sessions/$entity",
"value": [
{
"timestamp": "2023-03-28T00:00:00.000Z",
"sessionKey": "009e7f0f-5707-4083-934f-24d8ad5e91f8",
"sessionScore": 79.0,
"sessionState": "2",
"sessionType": "0",
"userName": "81d0260b529c11fbb05c8dfabb3d312182e6af9deecfc6c036768df2ed3c3a39",
"sessionStartTime": "2023-03-28T17:38:38.000Z",
"machineName": "253f6a031c9b65cbb7bcc3f137b9878fe0effef010757aec54420776a0d2dd71",
"deliveryGroupName": "CVD\\BUR CVAD Development",
"logonDuration": 18.69,
"brokeringDuration": 0.0,
"vmStartDuration": 0.0,
"hdxConnectionDuration": 0.0,
"authenticationDuration": 0.0,
"gpoDuration": 0.0,
"logonScriptsDuration": 0.0,
"profileLoadDuration": 0.0,
"interactiveSessionsDuration": 0.0,
"siteName": "cloudxdsite",
"icaRtt": 125.38,
"reconnects": 0.0,
"wanLatency": 0,
"hostDelay": 0,
"dcLatency": 0,
"endpointLocationCity": null,
"endpointReceiverVersion": "21.6.0.47",
"endpointOS": "Windows",
"endpointLocationCountry": null,
"endpointLinkSpeed": -1.0,
"endpointName": "64368231b5d925e40d67449640ca110e9658f63eef37d2579b09b975cc7f7e88",
"endpointIP": "850a4b2abc159a2f7d44dac564bda06afad0c558a070a2681f5cc0e1aa81991c",
"vdaIP": null,
"gatewayFQDN": null,
"connectionType": "External",
"connectorName": null,
"connectorGatewayLatency": 0.0,
"networkInterfaceType": null,
"isp": null,
"sessionLaunchType": "ICA®",
"throughputBytesReceived": -1.0,
"throughputBytesSent": -1.0,
"inputBandwidthConsumed": -1.0,
"outputBandwidthAvailable": -1.0,
"outputBandwidthUsed": -1.0,
"networkLatency": -1.0,
"outputBandwidthUtilization": -1.0,
"siteId": "090e20c8-c852-4a92-9b3f-dfb8d8b2ab61",
"sessionLaunchStatus": 0,
"sessionLaunchStatusCustom": "Succeeded"
},
...
{
"timestamp": "2023-04-14T00:00:00.000Z",
"sessionKey": "ff0504e3-0867-414a-b0b2-beb73f06fdad",
"sessionScore": 0.0,
"sessionState": "5",
"sessionType": "0",
"userName": "aed8a56c38d5d2824d8699a48cdd1b19eb3b16f135c8d61bf2cd6acd465aa998",
"sessionStartTime": "2023-03-09T21:39:51.000Z",
"machineName": "5603b4dcad97424b6329caccc9cc6ad949b764bbc0015bc6e2a2b4938e4be954",
"deliveryGroupName": "Remote PC - Miami LABs",
"logonDuration": 0.0,
"brokeringDuration": 0.0,
"vmStartDuration": 0.0,
"hdxConnectionDuration": 0.0,
"authenticationDuration": 0.0,
"gpoDuration": 0.0,
"logonScriptsDuration": 0.0,
"profileLoadDuration": 0.0,
"interactiveSessionsDuration": 0.0,
"siteName": "cloudxdsite",
"icaRtt": 0.0,
"reconnects": 0.0,
"wanLatency": 0,
"hostDelay": 0,
"dcLatency": 0,
"endpointLocationCity": null,
"endpointReceiverVersion": null,
"endpointOS": "Windows 10",
"endpointLocationCountry": null,
"endpointLinkSpeed": -1.0,
"endpointName": "Precision 5550",
"endpointIP": "e74dbbbd20d20f971c0254c6680aad800ad3932c4740544b39a42bb422424272",
"vdaIP": null,
"gatewayFQDN": null,
"connectionType": "External",
"connectorName": null,
"connectorGatewayLatency": 0.0,
"networkInterfaceType": null,
"isp": null,
"sessionLaunchType": "ICA",
"throughputBytesReceived": -1.0,
"throughputBytesSent": -1.0,
"inputBandwidthConsumed": -1.0,
"outputBandwidthAvailable": -1.0,
"outputBandwidthUsed": -1.0,
"networkLatency": -1.0,
"outputBandwidthUtilization": -1.0,
"siteId": "090e20c8-c852-4a92-9b3f-dfb8d8b2ab61",
"sessionLaunchStatus": 0,
"sessionLaunchStatusCustom": "Succeeded"
}
],
"@odata.nextLink": "https://api.cloud.com/casodata/sessions?year=2023&month=04&day=14&%
24skip=100&%24top=100"
}
<!--NeedCopy-->
Alle Daten einer bestimmten Sitzung abrufen (Daten nach Sessionkey filtern)
Beispielanfrage:
curl --location 'https://api.cloud.com/casodata/sessions?year=2023&month=04&day=14&%24filter=sessionKey%20eq%20%
27009e7f0f-5707-4083-934f-24d8ad5e91f8%27' \
--header 'Authorization: CwsAuth bearer=eyJhbGciOiJSUzI1NiIsInR5.....' \
--header 'Citrix-CustomerId: qt64gkrzji7h' \
--header 'Content-Type: application/json'
<!--NeedCopy-->
Beispielantwort:
{
"@odata.context": "$metadata#sessions/$entity",
"value": [
{
"timestamp": "2023-04-14T00:00:00.000Z",
"sessionKey": "009e7f0f-5707-4083-934f-24d8ad5e91f8",
"sessionScore": -1.0,
"sessionState": "2",
"sessionType": "0",
"userName": "81d0260b529c11fbb05c8dfabb3d312182e6af9deecfc6c036768df2ed3c3a39",
"sessionStartTime": "2023-04-05T17:32:45.000Z",
"machineName": "253f6a031c9b65cbb7bcc3f137b9878fe0effef010757aec54420776a0d2dd71",
"deliveryGroupName": "CVD\\BUR CVAD Development",
"logonDuration": 21.2,
"brokeringDuration": 0.0,
"vmStartDuration": 0.0,
"hdxConnectionDuration": 0.0,
"authenticationDuration": 0.0,
"gpoDuration": 0.0,
"logonScriptsDuration": 0.0,
"profileLoadDuration": 0.0,
"interactiveSessionsDuration": 0.0,
"siteName": "cloudxdsite",
"icaRtt": 0.0,
"reconnects": 0.0,
"wanLatency": 0,
"hostDelay": 0,
"dcLatency": 0,
"endpointLocationCity": null,
"endpointReceiverVersion": "21.6.0.47",
"endpointOS": "Windows",
"endpointLocationCountry": null,
"endpointLinkSpeed": -1.0,
"endpointName": "64368231b5d925e40d67449640ca110e9658f63eef37d2579b09b975cc7f7e88",
"endpointIP": "8dbacd9197f4d3dc068fd44b4837828f8e10a19358b14e96d439cfc82042b70f",
"vdaIP": null,
"gatewayFQDN": null,
"connectionType": "External",
"connectorName": null,
"connectorGatewayLatency": 0.0,
"networkInterfaceType": null,
"isp": null,
"sessionLaunchType": "ICA",
"throughputBytesReceived": -1.0,
"throughputBytesSent": -1.0,
"inputBandwidthConsumed": -1.0,
"outputBandwidthAvailable": -1.0,
"outputBandwidthUsed": -1.0,
"networkLatency": -1.0,
"outputBandwidthUtilization": -1.0,
"siteId": "090e20c8-c852-4a92-9b3f-dfb8d8b2ab61",
"sessionLaunchStatus": 0,
"sessionLaunchStatusCustom": "Succeeded"
}
]
}
<!--NeedCopy-->
Alle aktiven Sitzungen eines bestimmten Tages zählen
Beispielanfrage:
curl --location 'https://api.cloud.com/casodata/sessions?year=2023&month=04&day=14&%24count=true&%24filter=sessionState%
20eq%20%275%27' \
--header 'Authorization: CwsAuth bearer=eyJhbGciOiJSUzI1NiIsInR5.....' \
--header 'Citrix-CustomerId: qt64gkrzji7h' \
--header 'Content-Type: application/json'
<!--NeedCopy-->
Beispielantwort:
207
Datenquelle
Das CAS Self-Service-Such-Dashboard visualisiert und zeigt die Daten den Kundenadministratoren an und ermöglicht Suchfunktionen. Die ODATA API verwendet dieselbe Datenquelle und bietet Kundenadministratoren mehr Flexibilität beim Abrufen und Filtern der Daten. Weitere Informationen finden Sie unter Tabellarische Daten.