リソースへのアクセス
リソースを取得することによって、簡易 HTTP GET 要求を実装できます。Web ブラウザでベース URL にアクセスすることによって、利用可能なリソースおよびアクションについて説明するルート リソースを取得します。個々のリソースまたはリソースのコレクションを要求できます。また、改ページ調整の制御や、リソースの並べ替え、フィルタ、または検索ができます。
apmdevops102jp
リソースを取得することによって、簡易 HTTP GET 要求を実装できます。Web ブラウザでベース URL にアクセスすることによって、利用可能なリソースおよびアクションについて説明するルート リソースを取得します。個々のリソースまたはリソースのコレクションを要求できます。また、改ページ調整の制御や、リソースの並べ替え、フィルタ、または検索ができます。
CA APM RESTful API は HAL インターネット メディア タイプをサポートするため、デフォルトで HAL 形式のドキュメントが返されます。また、一部の API は、他の形式(application/xml、text/csv、text/plain など)もサポートできます。
ルート リソース
すべての CA APM パブリック API はルート リソースを公開します。ルート リソースには、利用可能なすべてのリソースへの(HAL)リンクおよびメタデータ、バージョンなどの追加情報が含まれます。
API のベース URL にアクセスすることによって、ルート リソースを取得できます。
GET https://<host>:<port>/apm/<service>
たとえば、以下の要求を使用して、CA APM Command Center のルート リソースを取得します。
GET https://localhost:8443/apm/acc
以下に、応答として受信したルート リソースを示します。
{ "vendor": "CA Technologies", "apiVersion": "1.0.1", "serverVersion": "10.0.1" "serviceProvider": "com.ca.apm.acc", "_links": { "controller": { "href": "https://localhost:8443/apm/acc/controller{?page,size,sort}", "templated": true }, . . . } } }
このルート リソースには以下の情報が含まれます。
- vendor: CA Technologies
- apiVersion: API バージョン
- serverVersion: この RESTful API によってビジネス ロジックを公開する application/component のバージョン。
- serviceProvider: サービスの完全修飾名
- _links: 利用可能なすべてのリソースへのリンクのリスト
リソースのコレクション
クライアントは個々のリソースまたはリソースのコレクションを要求できます。コレクションは個々のリソースの配列(JSON 形式に従って)として表示されます。
GET https://<host>:<port>/apm/<service>/resource
個々のリソースの配列は、以下のようにリソースの _embedded プロパティ内に埋め込まれています。
{ "_links": { << list of related links >> }, "_embedded": { "<< resource name >>": [ { << resource 1 data >> }, { << resource 2 data >> }, ..... ] }, "_page" : { <paging information> } }
個々のリソースが要求される場合、応答には要求されたリソースのみが含まれます。
GET https://<host>:<port>/apm/<service>/resource/1
応答例:
{ "id": 1, "serverName": "ACCserver01", "agentName": "Tomcat Agent", "status": "ACTIVE", "processName": "Tomcat", "_links": { "self": { "href": "/agent/1{?projection}", "templated": true }, "reports": { "href": "agent/1/report" }, "agentUpdateTasks": { "href": "/agent/1/agentUpdateTask" } } }
一般的な要求パラメータ
リソースのコレクションにアクセスする際は、リソースの数が実際の使用に対して多すぎる場合があります。そのため、クライアントが HTTP GET クエリ パラメータとして以下のプロパティを使用し、より詳細な情報を要求できます。
page および size
返されるページまたは 1 ページに含む必要がある結果数を制御できます。デフォルトで、最初の 20 の結果が返されます。
以下のパラメータを使用します。
- page返されるページの数(デフォルトは 0 = 最初のページが返されます)。
- size必要なページ サイズ。size=0 はすべてのリソースが表示されることを意味します。
例:
以下の要求は最初の 50 の結果を返します。
GET https://localhost:8443/apm/acc/agent?page=0&size=50
以下の要求は 51 ~ 60 の結果を返します。
GET https://localhost:8443/apm/acc/agent?page=5&size=10
sort
コレクションは特定のリソース プロパティ別に並べ替えできます。クライアントは sort パラメータを使用して並べ替えを制御できます。
例:
以下の要求は名前別でエージェントを並べ替えます。
GET https://localhost:8443/apm/acc/agent?sort=agentName
以下の要求では、エージェント名を降順およびインストール パスを昇順で並べ替えられたリストの最初(size=1)のエージェント リソースを取得します。パラメータの順序が考慮されることに注意してください。
GET https://localhost:8443/apm/acc/agent?sort=name,DESC&sort=installPath,ASC&size=1
projection
projection は、データの事前定義済みサブセットを返します。利用可能な projection には、以下の 2 つのタイプがあります。
- 静的 projection静的 projection は、リソースの利用可能なプロパティの事前定義済みサブセットです。文書化された名前を持ち、リソースのコレクションまたは特定のリソースのいずれかを要求する場合に HTTP パラメータ「projection」で渡すことができます。
- 動的 projection動的 projection を使用することによって、クライアントはどのリソースのプロパティが返される必要があるかを明示的に定義できます。動的なリソースを使用する場合、HTTP パラメータ「fields」は、予期されるリソース フィールドのカンマ区切りのリストを定義します。
利用可能な projection は関連 API ドキュメントに記載されています。
例:
以下の要求は、基本情報を持つエージェントのリストを返します。
GET https://localhost:8443/apm/acc/agent?projection=list
応答例:
{ "_links": { "self": { "href": "https://localhost:8443/apm/acc/agent?projection=list{&q,page,size,sort,projection,format}", "templated": true } }, "_embedded": { "agent": [ { "id": 1, "serverName": "ACCLinuxServer01", "status": "ACTIVE", "processName": "Tomcat", "agentName": "Tomcat Agent", "_links": { "self": { "href": "https://localhost:8443/apm/acc/agent/1{?projection}", "templated": true }, "controller": { "href": "https://localhost:8443/apm/acc/agent/1/controller" }, "diagnosticReports": { "href": "https://localhost:8443/apm/acc/agent/1/diagnosticReports" }, "agentUpdateTasks": { "href": "https://localhost:8443/apm/acc/agent/1/agentUpdateTasks" } } }, { "id": 2, "serverName": "ACCWinServer01", "status": "ACTIVE", "processName": "Tomcat", "agentName": "Tomcat Agent", "_links": { "self": { "href": "https://localhost:8443/apm/acc/agent/2{?projection}", "templated": true }, "controller": { "href": "https://localhost:8443/apm/acc/agent/2/controller"}, "diagnosticReports": { "href": "https://localhost:8443/apm/acc/agent/2/diagnosticReports" }, "agentUpdateTasks": { "href": "https://localhost:8443/apm/acc/agent/2/agentUpdateTasks" } } } ] },"page": { "size": 20, "totalElements": 2, "totalPages": 1, "number": 0 }}
format
指定された形式でデータを返します。format パラメータは、特定の形式(たとえば、Accept: text/csv; q=1.0)を要求するためのデフォルトのメカニズムである HTTP ヘッダー「Accept」より優先されます。
例:
以下の要求は、CSV 形式でのエージェントに関する情報を返します。
GET https://localhost:8443/apm/acc/agent?format=csv
応答例:
"id","agentName","serverName","processName","status","type","version","build","logLevel","registrationTimestamp","heartbeatTimestamp","emCollectorHost","emCollectorPort","appServerName","appServerVersion","platformName","platformVersion","platformArch","osName","osVersion","osArch","metricCount""1","Tomcat Agent","ACCLinuxServer01","Tomcat","ACTIVE","JavaAgent","9.7.1","16","INFO","2015-04-29 05:15:46 +0100","2015-04-30 05:20:45 +0100","ACCWinServer01","5001","Apache Tomcat","5.5.34.0","Oracle Corporation","1.7.0",,"Red Hat Enterprise Linux Server","6.1, kernel 2.6.32-131.0.15.el6.x86_64","amd64","59""2","Tomcat Agent","ACCWinServer01","Tomcat","ACTIVE","JavaAgent","9.7.1","16","INFO","2015-04-29 05:16:26 +0100","2015-04-30 05:16:26 +0100","ACCWinServer01","5001","Apache Tomcat","5.5.34.0","Oracle Corporation","1.7.0_51",,"Windows Server 2008 R2","6.1","amd64","66"
q
検索またはコレクション フィルタリング。このオプションを使用し、リソース サーバにフィルタまたは検索のクエリを渡すことができます。
時間および日付
日付および時間は、ISO 8601 形式を使用して表示されます。