Citrix Analytics ODATA API

概要

CAS ODATA v4 REST API を使用すると、集約されたデータを簡単に取得できます。現在、CAS パフォーマンスデータソースからセッションデータを取得する機能をサポートしています。

この記事では、API の使用方法について説明します。

API 仕様

認証

実装では、Citrix Cloud™ ベアラートークンを使用して認証を行います。

参照:

Citrix Cloud クライアント ID と Citrix Cloud クライアントシークレット

トークンを取得するためのリクエスト例を次に示します。

リクエスト例:

    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-->

レスポンス例:

HTTP/1.1 200 OK
Content-Type: application/json
...
{
"token_type": "bearer",
"access_token": "ey1..",
"expires_in": "3600"
}
<!--NeedCopy-->

注:

ベアラートークンの有効期限は 1 時間です。1 時間後にクエリを実行する必要がある場合は、再生成してください。

エンドポイント

グローバル: https://api.cloud.com/casodata

例:

https://api.cloud.com/casodata/sessions?year=2023&month=04&day=14 は、2023/04/14 (UTC) の集約されたセッションデータを取得します。

サービスパス

このセクションには、サービスパスと、セッション、マシン、ユーザーなどのエンティティ名に関する情報が含まれています。たとえば、次のサービスパスの例を参照してください。

/sessions?year=2023&month=04&day=14
<!--NeedCopy-->

パラメーター yearmonthday は必須であり、UTC 形式で追加されます。

指定された時間のデータもサポートされており、パスは次のとおりです。

/sessions?year=2023&month=04&day=14&hour=10 (2023/04/14 10:00 のデータを取得)
<!--NeedCopy-->

HTTP ヘッダー

Key Sample Value Mandatory
Authorization CwsAuth bearer=   はい
Citrix-CustomerId はい
Content-Type application/json   はい
Citrix-TransactionId     いいえ
Accept-Encoding gzip いいえ

システムオペレーター

CAS ODATA API は、次の基本的な OData システムオプションをサポートしています。

システムオプション Sample
$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

注:

$select オプションの値にスペースを追加しないでください。

$filter オペレーターと関数

CAS ODATA API は、$filter オプションに対して次の OData 論理オペレーターと文字列関数をサポートしています。

Category Operators Samples
論理オペレーター



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’))
文字列関数

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’)

エンティティとデータ属性

次の 3 つの CAS パフォーマンスエンティティがサポートされています。

使用例

メタデータを取得し、そこからいくつかの列を選択してクエリを実行

  1. メタデータのリクエスト

    リクエスト例:

    curl --location 'https://api.cloud.com/casodata/$metadata' \
    --header 'Authorization: CwsAuth bearer=eyJhbGciOiJSUzI1NiIsInR5.....' \
    --header 'Citrix-CustomerId: qt64gkrzji7h' \
    --header 'Content-Type: application/json'
    <!--NeedCopy-->
    

    レスポンス例:

    <?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-->
    
  2. sessionKeysessionScoresessionState の列を選択してクエリを実行

    リクエスト例:

    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-->
    

    レスポンス例:

    {
    "@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-->
    

ページネーションを使用して指定された日のすべてのデータを取得

クエリのデフォルトの制限は 1000 行です。

ユーザーは $top オプションの値を設定して、クエリの結果行を制限できます。このシナリオでは、クエリレスポンスの下部に次のページへのリンクが提供されます。

リクエスト例:

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-->

レスポンス例:

{
"@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-->

特定のセッションのすべてのデータを取得 (sessionkey でデータをフィルター)

リクエスト例:

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-->

レスポンス例:

{
"@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-->

特定の日のすべてのアクティブなセッションをカウント

リクエスト例:

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-->

レスポンス例:

207

データソース

CAS セルフサービス検索ダッシュボードは、顧客管理者向けにデータを視覚化して表示し、検索機能を有効にします。ODATA API は同じデータソースを使用し、顧客管理者がデータを取得およびフィルターするためのより多くの柔軟性を提供します。詳細については、表形式データを参照してください。

Citrix Analytics ODATA API