> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/deployment/ja/serufuhosuto/enterprise/deployment-manager.md).

# Deployment Manager

## 概要

Roboflow Deployment Manager を使用すると、エッジデバイス上でコンピュータービジョンモデルを簡単にセットアップ、デプロイ、管理できます。モデルを学習し、ワークフローを構築した後は、デプロイのスケール拡大に向けたオールインワンのソリューションを提供します。

Deployment Manager で次のことができます：

1. 次のものを使って新しいデバイスをセットアップし、 [Roboflow Inference サーバー](/deployment/ja/serufuhosuto/self-hosted.md).
2. デプロイで使用するカメラストリームを構成します。
3. デプロイ [Workflows](https://docs.roboflow.com/workflows) エッジで。
4. デプロイ済みのエッジデバイスのログ、ストリーム状態、テレメトリを監視します。

{% hint style="warning" %}
Deployment Manager は Enterprise 顧客限定で利用可能です。 [Roboflow の営業チームにお問い合わせください](https://roboflow.com/sales) この機能と、大規模なデプロイ管理にどのように活用できるかについて詳しくご覧ください。
{% endhint %}

<figure><img src="/files/2b57efd83fc675c6a609cd9914e4bda862ab41d6" alt=""><figcaption></figcaption></figure>

### 主な要件：

Deployment Manager は Roboflow 対応ハードウェア向けに構築されています：

* 対応済み：Roboflow 経由で購入したハードウェア
* 非対応（自己責任で使用してください）：NVIDIA Jetson、NVIDIA GPU を搭載した Debian 系 Linux を実行している x86 マシン
* まだサポートされていません：Mac または Windows ベースのシステム

セットアップと継続的な運用のためにデバイスはインターネットに接続されている必要があり、リモート管理と監視のために Roboflow へ継続的にアクセスできる必要があります。

## ガイド

### セットアップ

次の手順に従ってください [セットアップ](/deployment/ja/serufuhosuto/enterprise/deployment-manager/setting-up.md) デバイスをオンラインにして Workflows を実行するためのガイド。

| ガイド                                                                                                                 | 説明                                  |
| ------------------------------------------------------------------------------------------------------------------- | ----------------------------------- |
| [ハードウェア要件](/deployment/ja/serufuhosuto/enterprise/deployment-manager/setting-up/hardware-requirements.md)           | 対応ハードウェア、カメラ、ネットワーク、および送信トラフィックの要件。 |
| [デバイスを追加する](/deployment/ja/serufuhosuto/enterprise/deployment-manager/setting-up/add-a-device.md)                   | 新しいエッジデバイスをプロビジョニングし、アカウントに登録します。   |
| [ストリームを追加する](/deployment/ja/serufuhosuto/enterprise/deployment-manager/setting-up/add-a-stream.md)                  | Workflow を実行するカメラストリームを構成します。       |
| [Device Alerts を設定する](/deployment/ja/serufuhosuto/enterprise/deployment-manager/setting-up/set-up-device-alerts.md) | 接続、ディスク、FPS の問題に対するメールアラートを有効にします。  |
| [メンテナンスウィンドウの設定](/deployment/ja/serufuhosuto/enterprise/deployment-manager/setting-up/setup-maintenance-windows.md) | デプロイに影響する変更をいつ適用するかをスケジュールします。      |

### 変更

次の [変更](/deployment/ja/serufuhosuto/enterprise/deployment-manager/making-changes.md) セットアップ後のデバイスやストリームの更新、再構成、削除をカバーするガイド。

| ガイド                                                                                                                                    | 説明                                           |
| -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------- |
| [デバイス設定を更新する](/deployment/ja/serufuhosuto/enterprise/deployment-manager/making-changes/update-device-configuration.md)                 | デバイス設定、サービスのバージョン、追加サービスを管理します。              |
| [デバイスネットワークを構成](/deployment/ja/serufuhosuto/enterprise/deployment-manager/making-changes/configure-device-network.md)                  | クラウドから IP アドレス、ゲートウェイ、DNS、ホスト名を設定します。        |
| [AI1 カメラ設定を構成する](/deployment/ja/serufuhosuto/enterprise/deployment-manager/making-changes/configure-ai1-camera-settings.md)            | 露出、ゲイン、フォーカス、その他の AI1 カメラ設定をライブで調整します。       |
| [カメラに静的 IP を設定する](/deployment/ja/serufuhosuto/enterprise/deployment-manager/making-changes/set-camera-static-ip.md)                    | GigE Basler または Lucid カメラに永続的な静的 IP を割り当てます。 |
| [PoE ポートをソフトリセットする](/deployment/ja/serufuhosuto/enterprise/deployment-manager/making-changes/soft-reset-poe-port.md)                   | PoE ポートを再起動して、接続が固まったカメラリンクを回復します。           |
| [ストリームを一時停止して再開する](/deployment/ja/serufuhosuto/enterprise/deployment-manager/making-changes/stop-a-stream.md)                          | 実行中のストリームを一時的に停止し、後で再開します。                   |
| [ストリームをトリガーする](/deployment/ja/serufuhosuto/enterprise/deployment-manager/making-changes/trigger-a-stream.md)                           | トリガーされたストリームに対して、オンデマンドで Workflow を実行します。    |
| [ストリームを終了する](/deployment/ja/serufuhosuto/enterprise/deployment-manager/making-changes/delete-a-stream.md)                              | ストリームとその設定を完全に削除します。                         |
| [Deployment Manager を再デプロイする](/deployment/ja/serufuhosuto/enterprise/deployment-manager/making-changes/redeploy-deployment-manager.md) | 障害後にデバイスの設定を復旧します。                           |
| [デバイスを削除する](/deployment/ja/serufuhosuto/enterprise/deployment-manager/making-changes/delete-a-device.md)                               | もう使用しないデバイスを完全に削除します。                        |
| [Deployment Manager 用 API キー](/deployment/ja/serufuhosuto/enterprise/deployment-manager/making-changes/api-keys-for-device-manager.md) | デバイス API キーがどのように生成され、スコープが設定され、失効されるか。      |

### 監視

次の [監視](/deployment/ja/serufuhosuto/enterprise/deployment-manager/monitoring.md) ガイドでは、ストリームの状態、ログ、リソース、Event Store の健全性を確認する方法を説明します。

| ガイド                                                                                                                     | 説明                                      |
| ----------------------------------------------------------------------------------------------------------------------- | --------------------------------------- |
| [ストリームを表示する](/deployment/ja/serufuhosuto/enterprise/deployment-manager/monitoring/view-a-stream.md)                     | ストリームの状態、最新フレーム、Workflow の詳細を表示します。     |
| [デバイスログを表示する](/deployment/ja/serufuhosuto/enterprise/deployment-manager/monitoring/view-device-logs.md)                 | Roboflow サービスのログを検索、フィルタリング、ダウンロードします。  |
| [リソースモニターを表示する](/deployment/ja/serufuhosuto/enterprise/deployment-manager/monitoring/view-the-resource-monitor.md)      | ディスク、メモリ、CPU、GPU、サービスコンテナの健全性を監視します。    |
| [Event Store の状態を表示する](/deployment/ja/serufuhosuto/enterprise/deployment-manager/monitoring/view-event-store-status.md) | Event Store の使用状況、バックアップの進行状況、履歴を監視します。 |

## HTTP API

Deployment Manager API を使用すると、Roboflow Deployment Manager（RFDM）デバイスをプログラムで監視および管理できます。

すべてのエンドポイントは次の配下にあります `/:workspace/devices/v2` 公開 API ホスト（`https://api.roboflow.com`）。読み取りエンドポイントには [スコープ付き API キー](https://docs.roboflow.com/reference/authentication/authentication/scoped-api-keys) 次を持つ `device:read` スコープ。作成エンドポイントには `device:update`明示的なスコープ一覧を持たないワークスペース API キーには、すべてのスコープが暗黙的に付与されます（旧来の動作）。明示的な `スコープ` 配列には該当するスコープを含める必要があります。

Deployment Manager API を使用すると、次のことができます：

* [デバイスを一覧表示する](#list-and-get-devices)
* [デバイスを作成する](#create-a-device)
* [デバイス設定](#device-config)
* [デバイスストリーム](#device-streams)
* [デバイスログとテレメトリ](#device-logs-and-telemetry)
* [デバイスイベント](#device-events)

### 認証

すべてのエンドポイントは、次のいずれかの方法でワークスペース API キーを受け付けます：

* クエリ文字列： `?api_key=YOUR_API_KEY`
* ヘッダー： `Authorization: Bearer YOUR_API_KEY`

#### デバイススコープの API キー

特定のデバイス用に発行された API キー（たとえば、インストール時に RFDM によって発行されたもの）は、そのデバイスに限定されます。呼び出せるのは、その `:deviceId` パスパラメータがキーに紐づくデバイスと一致するルートのみです。次を受け取ります **403** ワークスペース全体の一覧および作成エンドポイントでは、また任意の `:deviceId` 一致しないパスでは

### ワークスペース間の分離

ワークスペース API キーは、そのワークスペースに属するデバイスのみを読み取りまたは変更できます。別のワークスペースが所有するデバイス ID へのリクエストは次を返します **404**、その ID がそれ以外は有効であっても。

### エラー

| ステータス | 意味                                                                                                                                                    |
| ----- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| 400   | 無効なクエリパラメータ（未知の `time_period`、不正なカーソルまたは日付、無効な `direction`など）または無効なリクエスト本文。                                                                           |
| 401   | API キーが不足しているか無効です。                                                                                                                                   |
| 403   | 別のデバイスを対象とするデバイススコープの API キー、ワークスペース全体の一覧/作成ルート、複製中に別のワークスペースから取得されたソースデバイス、または機能ゲートにより拒否されたリクエスト（たとえば、AI1 の作成や `offline_mode` がワークスペースで有効になっていない場合）。 |
| 404   | デバイス、ストリーム、設定、またはソースデバイスが見つかりません。別のワークスペースが所有するデバイス ID への読み取りリクエストも 404 を返します。                                                                        |
| 429   | レート制限を超過しました。ログは IP ごとに 1 分あたり 5 リクエスト、全体で 1 分あたり 50 リクエストに制限されています。テレメトリ読み取りは、デバイスごとに 1 分あたり 60 リクエストに制限され、10 秒間で 10 リクエストのバーストが許可されます。              |

エラーレスポンスは次の 2 つの形式のいずれかです：

* ハンドラーレベルのエラー（通常はハンドラ自体から返される 400、403、404、429）は次を返します `{ "error": "<message>" }`.
* 認証およびワークスペース検証の失敗（通常は 401）は、構造化された `error` オブジェクト： `{ "error": { "message": "...", "status": 401, "type": "OAuthException", "hint": "..." } }`.

ログのレートリミッターは、トリガーされた場合にプレーンな文字列本文（JSON ではない）も返します。 **429**.

### デバイスを一覧表示する

#### デバイスを一覧表示する

ワークスペースに登録されているすべてのデバイスを一覧表示します。デバイススコープの API キーはこのエンドポイントを呼び出せず、次を受け取ります **403**.

**必要なスコープ:** `device:read`

{% openapi src="/files/875bfb9d5cb6123044c119d00cb0dca6857749d2" path="/{workspace}/devices/v2" method="get" %}
[deployment-manager.yaml](https://970637113-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoksNmwps1HmYr8TqHDnX%2Fuploads%2Fgit-blob-0f39f7ff406338249e5d84d81b74fd17121abe81%2Fdeployment-manager.yaml?alt=media)
{% endopenapi %}

**リクエスト例**

```bash
curl "https://api.roboflow.com/{workspace}/devices/v2?api_key=$ROBOFLOW_API_KEY"
```

**レスポンス例**

```json
{
  "data": [
    {
      "id": "abc123",
      "name": "factory-floor-cam-1",
      "status": "online",
      "last_heartbeat": "2026-04-28T12:00:00.000Z",
      "platform": "Linux",
      "platform_release": "5.10.104-tegra",
      "platform_version": "#1 SMP PREEMPT ...",
      "architecture": "aarch64",
      "hostname": "jetson-01",
      "rfdm_version": "1.2.3",
      "type": "jetson",
      "hardware": {
        "processor": "aarch64",
        "gpu": null,
        "total_memory_mb": null,
        "total_disk_space_mb": 124426534912
      },
      "tags": ["production", "line-3"],
      "created_at": "2026-01-15T08:30:00.000Z"
    }
  ]
}
```

次の `状態` フィールドは `オンライン` 最後の 5 分以内にハートビートを受信している場合、 `オフライン` それより古い場合、または `不明` これまでに一度もハートビートが記録されていない場合です。新規プロビジョニングされたデバイスは最初のハートビートより前に一覧に表示されます。その間は `状態` は `不明` であり、監視から得られるほとんどのフィールドは `null`.

{% hint style="warning" %}
`hardware.total_disk_space_mb` はデバイスが報告する生の値です。にもかかわらず `_mb` という接尾辞が付いていますが、RFDM が報告するデバイスは現在この値をバイト単位で返します（たとえば `124426534912` 約 124 GB のディスクの場合）。単位はデバイス定義として扱ってください。
{% endhint %}

#### デバイスを取得する

ID で単一のデバイスを取得します。返されるのは **404** デバイスが存在しないか、別のワークスペースに属している場合です。

**必要なスコープ:** `device:read`

{% openapi src="/files/875bfb9d5cb6123044c119d00cb0dca6857749d2" path="/{workspace}/devices/v2/{deviceId}" method="get" %}
[deployment-manager.yaml](https://970637113-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoksNmwps1HmYr8TqHDnX%2Fuploads%2Fgit-blob-0f39f7ff406338249e5d84d81b74fd17121abe81%2Fdeployment-manager.yaml?alt=media)
{% endopenapi %}

**リクエスト例**

```bash
curl "https://api.roboflow.com/{workspace}/devices/v2/{deviceId}?api_key=$ROBOFLOW_API_KEY"
```

レスポンス本文は list エンドポイントの単一アイテムと一致します（次のものでラップされません `data` 配列）。

### デバイスを作成する

ワークスペースに新しいデバイスを作成し、インストールに必要な識別子を返します。デバイススコープの API キーはこのエンドポイントを呼び出せず、次を受け取ります **403**.

**必要なスコープ:** `device:update`

{% openapi src="/files/875bfb9d5cb6123044c119d00cb0dca6857749d2" path="/{workspace}/devices/v2" method="post" %}
[deployment-manager.yaml](https://970637113-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoksNmwps1HmYr8TqHDnX%2Fuploads%2Fgit-blob-0f39f7ff406338249e5d84d81b74fd17121abe81%2Fdeployment-manager.yaml?alt=media)
{% endopenapi %}

**リクエスト例**

```bash
curl -X POST "https://api.roboflow.com/{workspace}/devices/v2?api_key=$ROBOFLOW_API_KEY" \\
  -H "Content-Type: application/json" \\
  -d '{"device_name": "factory-floor-cam-2", "device_type": "edge"}'
```

**レスポンス例**

```json
{
  "deviceId": "abc456",
  "installId": "inst_xyz789"
}
```

返された `installId` を使用して、Roboflow Deployment Manager インストーラーでデバイスをブートストラップします。

#### AI1 デバイスに関する注意

* 設定 `device_type` を `"ai1"` には、ワークスペースに次の機能が有効である必要があります `deviceAio` 機能が有効である必要があります。そうでない場合、リクエストは次を返します **403**.
* `offline_mode` は、次を有効にしたワークスペース上の AI1 デバイスに対してのみ有効です `roboflowLiteMode`。その他の組み合わせでは次が返されます **400** または **403**.
* 既存デバイスを複製せず、次を指定しない AI1 デバイスの場合 `workflow_id`、スラッグ化された `device_name` には少なくとも 1 つの英数字が含まれていなければなりません。そうでない場合、リクエストは次を返します **400**.
* AI1 + オフラインモードが適用される場合、レスポンスにはさらに次が含まれます `offlineProvisioningQrPayload` オフラインプロビジョニング用の QR ペイロードをエンコードするフィールド。

#### 複製に関する注意

次の場合、 `sourceDeviceId` が指定されると、新しいデバイスはソースデバイスの設定のコピーから作成されます。ソースデバイスはリクエストと同じワークスペースに属している必要があり、そうでない場合リクエストは次を返します **403**。存在しない `sourceDeviceId` は次を返します **404**.

### デバイス設定

#### ワークスペースのデフォルト設定を取得する

ワークスペースレベルのデフォルトデバイス設定を返します。これは、ワークスペースの設定パッチ（ある場合）がマージされたベースのデフォルト設定です。新しいデバイスをプロビジョニングし、次を呼び出す前のテンプレートとして使用します `POST /:workspace/devices/v2`.

**必要なスコープ:** `device:read`

{% hint style="info" %}
これはワークスペース全体のエンドポイントです。デバイススコープの API キーは次を受け取ります **403** なぜなら、パスに `:deviceId` がないためです。
{% endhint %}

**リクエスト例**

```bash
curl "https://api.roboflow.com/{workspace}/devices/v2/default-config?api_key=$ROBOFLOW_API_KEY"
```

**レスポンス例**

```json
{
  "config": {
    "version": "1.0.0",
    "config": {
      "inference": { "confidence": 0.7, "threshold": 0.3 },
      "device_type": "edge"
    },
    "services": {}
  },
  "patch": {
    "config": {
      "inference": { "confidence": 0.7 }
    }
  }
}
```

* `config` -- マージ後の結果（ベースのデフォルト + ワークスペースのパッチ）。
* `patch` -- ワークスペースに保存されているパッチ。ワークスペースにカスタムパッチがない場合は空のオブジェクト `{}` 。

#### 設定を取得する

デバイスの現在の実行時設定を返します。レスポンスの形状は Roboflow Deployment Manager（RFDM）の設定仕様に一致します。

**必要なスコープ:** `device:read`

{% openapi src="/files/875bfb9d5cb6123044c119d00cb0dca6857749d2" path="/{workspace}/devices/v2/{deviceId}/config" method="get" %}
[deployment-manager.yaml](https://970637113-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoksNmwps1HmYr8TqHDnX%2Fuploads%2Fgit-blob-0f39f7ff406338249e5d84d81b74fd17121abe81%2Fdeployment-manager.yaml?alt=media)
{% endopenapi %}

**リクエスト例**

```bash
curl "https://api.roboflow.com/{workspace}/devices/v2/{deviceId}/config?api_key=$ROBOFLOW_API_KEY"
```

レスポンスは完全な設定ドキュメントであり、次のトップレベルフィールドを含みます（ただしこれらに限定されません）。

* `device_id`, `device_name`
* `workspace_id`
* `バージョン`, `last_updated`, `last_updated_at`, `created_at`
* `config` （デバイスの実行時設定ツリー。次を含む `device_type`, `stream`、および `offline_mode`)
* `services` （サービスごとのコンテナ定義。次を含む `image`, `volumes`、および `environment_variables`)
* `environment_variables` （トップレベルの環境変数。次の中のサービスごとのものに加えて `services`)
* `production_mode`, `last_automatic_update`, `updated`, `updated_by`, `$schema`, `id`

RFDM によって書き込まれた追加フィールドが表示されることもあります。レスポンスの形状は可変とみなし、必要なフィールドだけに依存してください。

返します **404** デバイスが存在しないか、あなたのワークスペースに属していない場合、またはその設定が保存されていない場合。

{% hint style="warning" %}
レスポンスには、作成されたままの完全な設定が含まれます。サービスごとの `environment_variables` および設定に埋め込まれたすべての連携認証情報は、マスキングされずに返されます。レスポンス本文は機密情報として扱い、平文でログに出力しないでください。
{% endhint %}

#### 設定履歴

デバイスの過去の設定リビジョンを新しい順に一覧表示します。

**必要なスコープ:** `device:read`

{% openapi src="/files/875bfb9d5cb6123044c119d00cb0dca6857749d2" path="/{workspace}/devices/v2/{deviceId}/config/history" method="get" %}
[deployment-manager.yaml](https://970637113-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoksNmwps1HmYr8TqHDnX%2Fuploads%2Fgit-blob-0f39f7ff406338249e5d84d81b74fd17121abe81%2Fdeployment-manager.yaml?alt=media)
{% endopenapi %}

**リクエスト例**

```bash
curl "https://api.roboflow.com/{workspace}/devices/v2/{deviceId}/config/history?api_key=$ROBOFLOW_API_KEY&limit=10"
```

**レスポンス例**

```json
{
  "data": [
    {
      "revision_id": "rev_abc",
      "created_at": "2026-04-20T14:30:00.000Z",
      "created_by": "user_123"
    }
  ],
  "pagination": {
    "next_cursor": "...",
    "has_more": true,
    "limit": 10
  }
}
```

不正な `カーソル` は次を返します **400** で `{"error": "カーソル形式が無効です"}`.

### デバイスストリーム

#### ストリームを一覧表示する

デバイスに設定されているすべてのストリームを一覧表示します。

**必要なスコープ:** `device:read`

{% openapi src="/files/875bfb9d5cb6123044c119d00cb0dca6857749d2" path="/{workspace}/devices/v2/{deviceId}/streams" method="get" %}
[deployment-manager.yaml](https://970637113-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoksNmwps1HmYr8TqHDnX%2Fuploads%2Fgit-blob-0f39f7ff406338249e5d84d81b74fd17121abe81%2Fdeployment-manager.yaml?alt=media)
{% endopenapi %}

**リクエスト例**

```bash
curl "https://api.roboflow.com/{workspace}/devices/v2/{deviceId}/streams?api_key=$ROBOFLOW_API_KEY"
```

**レスポンス例**

```json
{
  "data": [
    {
      "id": "stream_abc",
      "name": "entrance-cam",
      "status": "running",
      "pipeline_id": "pipe_123",
      "workflow_id": "wf_456",
      "source": "rtsp://192.168.1.100:554/live",
      "started_at": "2026-04-28T10:00:00.000Z",
      "last_event_at": "2026-04-28T12:30:00.000Z",
      "camera_fps": 29.97,
      "inference_fps": 12.4,
      "sharpness": 0.82,
      "error": null
    }
  ]
}
```

**ソースのサニタイズ**

次の `source` フィールドは返される前に必ずサニタイザーを通されます：

* ソースが URL の場合、任意の `userinfo` (`scheme://user:pass@host/...`）は除去されます。たとえば、 `rtsp://admin:password@192.168.1.100:554/live` は次のようになります `rtsp://192.168.1.100:554/live`.
* ソースがオブジェクトの場合、小文字のキー名が `password`, `passwd`, `secret`, `api_key`, `apikey`, `auth`, `authorization`, `token`、または `access_token` のキーはレスポンスから除外されます。その他のキーはすべて保持されます。
* 配列とネストされたオブジェクトは再帰的にサニタイズされます。

#### ストリームを取得する

単一のストリームを取得します。返されるのは **404** ストリームがデバイス上に存在しない場合、またはデバイスが存在しないかあなたのワークスペースに属していない場合です。

**必要なスコープ:** `device:read`

{% openapi src="/files/875bfb9d5cb6123044c119d00cb0dca6857749d2" path="/{workspace}/devices/v2/{deviceId}/streams/{streamId}" method="get" %}
[deployment-manager.yaml](https://970637113-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoksNmwps1HmYr8TqHDnX%2Fuploads%2Fgit-blob-0f39f7ff406338249e5d84d81b74fd17121abe81%2Fdeployment-manager.yaml?alt=media)
{% endopenapi %}

**リクエスト例**

```bash
curl "https://api.roboflow.com/{workspace}/devices/v2/{deviceId}/streams/{streamId}?api_key=$ROBOFLOW_API_KEY"
```

レスポンス本文は list エンドポイントの単一アイテムと一致します（次のものでラップされません `data` 配列）。

### デバイスログとテレメトリ

#### ログ

ページ分割されたデバイスログを返します。

**必要なスコープ:** `device:read`

{% openapi src="/files/875bfb9d5cb6123044c119d00cb0dca6857749d2" path="/{workspace}/devices/v2/{deviceId}/logs" method="get" %}
[deployment-manager.yaml](https://970637113-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoksNmwps1HmYr8TqHDnX%2Fuploads%2Fgit-blob-0f39f7ff406338249e5d84d81b74fd17121abe81%2Fdeployment-manager.yaml?alt=media)
{% endopenapi %}

**リクエスト例**

**レート制限：** ワークスペースごとに 1 分あたり 120 リクエストです。ログの読み取りとログ取り込みは別々のレート制限バケットを使用するため、ログのポーリングは取り込みクォータに影響しません（逆も同様です）。

```bash
curl "https://api.roboflow.com/{workspace}/devices/v2/{deviceId}/logs?api_key=$ROBOFLOW_API_KEY&limit=50"
```

**レスポンス例**

```json
{
  "data": [
    {
      "timestamp": "2026-04-28T12:01:00.000Z",
      "service": "inference",
      "severity": "INFO",
      "message": "モデルの読み込みに成功しました"
    }
  ],
  "pagination": {
    "next_cursor": "2026-04-28T12:01:00.000Z",
    "has_more": true,
    "limit": 50
  }
}
```

**レート制限**

このエンドポイントは次のレート制限があります: **IPアドレスごとに1分あたり5リクエスト** および **全体で1分あたり50リクエスト**。超過したリクエストは次を返します **429**.

#### テレメトリ

固定の時間ウィンドウで区切られた、デバイスの集約済みハードウェアメトリクス（CPU、メモリ、ディスク、GPU）と各ストリームのFPSを返します。

**必要なスコープ:** `device:read`

{% openapi src="/files/875bfb9d5cb6123044c119d00cb0dca6857749d2" path="/{workspace}/devices/v2/{deviceId}/telemetry" method="get" %}
[deployment-manager.yaml](https://970637113-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoksNmwps1HmYr8TqHDnX%2Fuploads%2Fgit-blob-0f39f7ff406338249e5d84d81b74fd17121abe81%2Fdeployment-manager.yaml?alt=media)
{% endopenapi %}

**リクエスト例**

```bash
curl "https://api.roboflow.com/{workspace}/devices/v2/{deviceId}/telemetry?api_key=$ROBOFLOW_API_KEY&time_period=24h"
```

バケットサイズは時間期間ごとに固定です:

| `time_period` | `bucket_interval` | `fill_interval_seconds` |
| ------------- | ----------------- | ----------------------- |
| `1h`          | `2分`              | 120                     |
| `24h`         | `30分`             | 1800                    |
| `7d`          | `4時間`             | 14400                   |
| `14d`         | `8時間`             | 28800                   |

**レスポンス例**

```json
{
  "time_period": "24h",
  "bucket_interval": "30 MINUTE",
  "fill_interval_seconds": 1800,
  "buckets": [
    {
      "bucket_start": "2026-04-28T00:00:00.000Z",
      "cpu_pct": 42.5,
      "used_memory_mb": 3200,
      "total_memory_mb": 7860,
      "used_disk_space_mb": 15000,
      "total_disk_space_mb": 29000,
      "gpu_pct": 78.2
    }
  ]
}
```

指定したウィンドウ内でテレメトリを受信しなかったバケットも返され、各メトリクスフィールドは次の値に設定されます `null`.

**レート制限**

このエンドポイントはデバイスごとに次のレート制限があります: **1分あたり60リクエスト** に加えて **10秒あたり10リクエスト** のバースト制限があります。超過したリクエストは次を返します **429**。同じデバイス単位のテレメトリ枠はデバイスのテレメトリ取り込み経路と共有されるため、過剰な読み取りは同じデバイスの取り込みに影響する可能性があります。

### デバイスイベント

デバイスとストリームのライフサイクルイベントを返します（例: デバイスの起動、ストリームの開始/停止、エラー、設定変更）。

**必要なスコープ:** `device:read`

{% openapi src="/files/875bfb9d5cb6123044c119d00cb0dca6857749d2" path="/{workspace}/devices/v2/{deviceId}/events" method="get" %}
[deployment-manager.yaml](https://970637113-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoksNmwps1HmYr8TqHDnX%2Fuploads%2Fgit-blob-0f39f7ff406338249e5d84d81b74fd17121abe81%2Fdeployment-manager.yaml?alt=media)
{% endopenapi %}

**リクエスト例**

```bash
curl "https://api.roboflow.com/{workspace}/devices/v2/{deviceId}/events?api_key=$ROBOFLOW_API_KEY&limit=50"
```

**レスポンス例**

```json
{
  "data": [
    {
      "id": "evt_abc123",
      "event": "device.boot",
      "entity_type": "device",
      "entity_id": "abc123",
      "event_description": "デバイスが起動しました",
      "error_code": null,
      "metadata": { "source": "boot-loop" },
      "device_timestamp": "2026-04-28 10:00:00",
      "server_timestamp": "2026-04-28 10:00:01",
      "event_end_timestamp": null
    }
  ],
  "pagination": {
    "next_cursor": "...",
    "prev_cursor": "...",
    "has_more": true,
    "limit": 50
  }
}
```

次の `device_timestamp`, `server_timestamp`、および `event_end_timestamp` フィールドの形式は次のとおりです `YYYY-MM-DD HH:MM:SS[.SSS]` UTCです。このAPIの他のタイムスタンプのようにISO-8601には正規化されません。

`event_end_timestamp` epoch-zero の文字列として返されることもあります `"1970-01-01 00:00:00.000"` （次ではなく `null`）イベントに記録された終了タイムスタンプがない場合。
