> ## Documentation Index
> Fetch the complete documentation index at: https://documents.trocco.io/llms.txt
> Use this file to discover all available pages before exploring further.
# 転送ジョブ実行ログ取得
> 転送ジョブを指定して実行ログを取得します。
ジョブのステータス確認には[転送ジョブ実行結果取得](https://documents.trocco.io/apidocs/get-job)をご利用ください。実行ログの取得はジョブの完了を検知した後に行うことを推奨します。
**実行ログの仕様**
- 実行ログは約1年間保持されます。保持期間を過ぎた場合、`logs.streams[].status`が`expired`となります。
- ジョブが完了しておらず実行ログがまだ出力されていない場合、`logs.streams[].status`が`pending`となります。時間をおいて再度取得してください。
- ログが一定の量を超える場合、先頭と末尾のみが取得され、中間は`skipped...`に置き換えられます。この場合`logs.streams[].truncated`が`true`となります。
- `logs.streams[].content`は改行を含む複数行のテキストです。
- 実行中のジョブの場合、取得した時点でのログを返します。前回取得分からの差分を取得することはできません。
**取得した実行ログの取り扱い**
- 実行ログには、接続先のホスト名やユーザー名、ファイルパス、実行したクエリ、エラーになったデータの値などが含まれる場合があります。
- 接続情報に保存したパスワードやトークンを、TROCCOがログに書き出すことはありません。ただし、HTTP・HTTPS転送元で「マスキングする」を選んでいないパラメータ、クエリやカスタム変数に直接記載した値、接続先のサービスがエラーメッセージに含めた値は、そのまま含まれる場合があります。
- 取得した内容を外部のAIサービスに渡す場合は、入力したデータが学習に使われない設定でご利用ください。あわせて、貴社のデータの取り扱い方針と、利用するAIサービスのデータの扱いを事前にご確認ください。
## OpenAPI
````json GET /api/jobs/{job_id}/logs
{
"openapi": "3.0.3",
"info": {
"title": "trocco APIリファレンス",
"description": "trocco APIリファレンス",
"version": "0.0.1"
},
"servers": [
{
"url": "https://trocco.io"
}
],
"security": [
{
"ApiKeyAuth": []
}
],
"tags": [
{
"name": "users",
"description": "ユーザー",
"externalDocs": {
"url": "https://documents.trocco.io/docs/about-account-user"
}
},
{
"name": "teams",
"description": "チーム",
"externalDocs": {
"url": "https://documents.trocco.io/docs/team"
}
},
{
"name": "connections",
"description": "接続情報",
"externalDocs": {
"url": "https://documents.trocco.io/docs/connection-configurations"
}
},
{
"name": "custom_connectors",
"description": "カスタムコネクタ定義"
},
{
"name": "datamart_definitions",
"description": "データマート定義",
"externalDocs": {
"url": "https://documents.trocco.io/docs/data-mart"
}
},
{
"name": "environment_groups",
"description": "環境グループ"
},
{
"name": "environments",
"description": "環境"
},
{
"name": "jobs",
"description": "転送ジョブ",
"externalDocs": {
"url": "https://documents.trocco.io/docs/etl-configuration"
}
},
{
"name": "pipeline_jobs",
"description": "ワークフロージョブ",
"externalDocs": {
"url": "https://documents.trocco.io/docs/about-workflow"
}
},
{
"name": "resource_groups",
"description": "リソースグループ",
"externalDocs": {
"url": "https://documents.trocco.io/docs/resource-group"
}
},
{
"name": "dbt_git_repositories",
"description": "dbt Gitリポジトリ"
},
{
"name": "dbt_job_definitions",
"description": "dbtジョブ設定",
"externalDocs": {
"url": "https://documents.trocco.io/docs/dbt-job-configuration"
}
},
{
"name": "dbt_jobs",
"description": "dbtジョブ",
"externalDocs": {
"url": "https://documents.trocco.io/docs/dbt-job-configuration"
}
},
{
"name": "notification_destinations",
"description": "通知先",
"externalDocs": {
"url": "https://documents.trocco.io/docs/trocco-tutorial-additional-settings"
}
}
],
"externalDocs": {
"description": "trocco APIについて",
"url": "https://documents.trocco.io/docs/trocco-api"
},
"paths": {
"/api/jobs/{job_id}/logs": {
"get": {
"summary": "転送ジョブ実行ログ取得",
"description": "転送ジョブを指定して実行ログを取得します。
\n
\nジョブのステータス確認には[転送ジョブ実行結果取得](https://documents.trocco.io/apidocs/get-job)をご利用ください。実行ログの取得はジョブの完了を検知した後に行うことを推奨します。
\n
\n**実行ログの仕様**
\n- 実行ログは約1年間保持されます。保持期間を過ぎた場合、`logs.streams[].status`が`expired`となります。\n- ジョブが完了しておらず実行ログがまだ出力されていない場合、`logs.streams[].status`が`pending`となります。時間をおいて再度取得してください。\n- ログが一定の量を超える場合、先頭と末尾のみが取得され、中間は`skipped...`に置き換えられます。この場合`logs.streams[].truncated`が`true`となります。\n- `logs.streams[].content`は改行を含む複数行のテキストです。\n- 実行中のジョブの場合、取得した時点でのログを返します。前回取得分からの差分を取得することはできません。\n\n**取得した実行ログの取り扱い**
\n- 実行ログには、接続先のホスト名やユーザー名、ファイルパス、実行したクエリ、エラーになったデータの値などが含まれる場合があります。\n- 接続情報に保存したパスワードやトークンを、TROCCOがログに書き出すことはありません。ただし、HTTP・HTTPS転送元で「マスキングする」を選んでいないパラメータ、クエリやカスタム変数に直接記載した値、接続先のサービスがエラーメッセージに含めた値は、そのまま含まれる場合があります。\n- 取得した内容を外部のAIサービスに渡す場合は、入力したデータが学習に使われない設定でご利用ください。あわせて、貴社のデータの取り扱い方針と、利用するAIサービスのデータの扱いを事前にご確認ください。\n",
"operationId": "getJobLogs",
"tags": [
"jobs"
],
"parameters": [
{
"name": "job_id",
"description": "転送ジョブIDを指定します。
\nTROCCO画面からIDを確認する場合は、[API実行時に指定する各種パラメーターの確認方法](https://documents.trocco.io/trocco-api/apidocs/overview#api%E5%AE%9F%E8%A1%8C%E6%99%82%E3%81%AB%E6%8C%87%E5%AE%9A%E3%81%99%E3%82%8B%E5%90%84%E7%A8%AE%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF%E3%83%BC%E3%81%AE%E7%A2%BA%E8%AA%8D%E6%96%B9%E6%B3%95)を参照ください。\n",
"required": true,
"in": "path",
"schema": {
"type": "integer",
"format": "int64"
},
"example": 123
},
{
"name": "type",
"description": "取得するログの種別を指定します。
\n未指定の場合、すべての種別のログを返します。\n",
"required": false,
"in": "query",
"schema": {
"title": "JobLogType",
"type": "string",
"description": "ログの種別です。\n- `log` - 実行ログ\n- `error_log` - エラーログ\n",
"enum": [
"log",
"error_log"
],
"example": "log"
}
}
],
"responses": {
"200": {
"description": "転送ジョブの実行ログを返します。",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"job": {
"type": "object",
"properties": {
"id": {
"description": "転送ジョブIDです。",
"type": "integer",
"format": "int64",
"example": 123
},
"job_definition_id": {
"description": "転送設定IDです。",
"type": "integer",
"format": "int64",
"example": 321
},
"status": {
"description": "転送ジョブのステータスです。\n- `queued` - 実行待機\n- `setting_up` - 実行準備\n- `executing` - 実行中\n- `interrupting` - 実行中断\n- `succeeded` - 実行完了(成功)\n- `error` - 実行完了(エラー)\n- `canceled` - 実行完了(キャンセル)\n- `skipped` - 実行完了(スキップ)\n- `timeout` - 実行完了(タイムアウト)\n",
"type": "string",
"enum": [
"queued",
"setting_up",
"executing",
"interrupting",
"succeeded",
"error",
"canceled",
"skipped",
"timeout"
],
"example": "error"
}
},
"required": [
"id",
"job_definition_id",
"status"
]
},
"logs": {
"type": "object",
"properties": {
"streams": {
"description": "種別ごとの実行ログです。`type`を指定した場合、指定した種別のみを返します。(`log`, `error_log` の順)\n",
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"title": "JobLogType",
"type": "string",
"description": "ログの種別です。\n- `log` - 実行ログ\n- `error_log` - エラーログ\n",
"enum": [
"log",
"error_log"
],
"example": "log"
},
"status": {
"title": "JobLogStatus",
"type": "string",
"description": "この種別の実行ログの取得状態です。種別ごとに判定するため、`type`での絞り込みの有無によって値は変わりません。\n- `available` - 実行ログを取得できました\n- `pending` - ジョブが完了していない、またはジョブの完了直後で実行ログの反映を待っているため、実行ログをまだ取得できません。時間をおいて再度取得してください\n- `empty` - ジョブは完了しており、この種別の実行ログは出力されませんでした\n- `expired` - 保持期間を過ぎたため実行ログを取得できません\n\n`available`以外の場合、`content`は空文字を返します。\n",
"enum": [
"available",
"pending",
"empty",
"expired"
],
"example": "available"
},
"content": {
"description": "実行ログの本文です。改行を含む複数行のテキストです。
\n実行ログを取得できない場合、空文字を返します。\n",
"type": "string",
"example": "2023-05-19 19:15:00.000 +0000 [INFO]: Embulk started\n"
},
"truncated": {
"description": "実行ログの中間が省略されているかどうかです。
\n`true`の場合、`content`に`skipped...`が含まれます。\n",
"type": "boolean",
"example": false
},
"byte_size": {
"description": "`content`のバイト数です。",
"type": "integer",
"example": 1024
}
},
"required": [
"type",
"status",
"content",
"truncated",
"byte_size"
]
}
}
},
"required": [
"streams"
]
}
},
"required": [
"job",
"logs"
]
}
}
}
},
"400": {
"description": "Bad request.
\n不正なリクエストです。\n"
},
"401": {
"description": "Not authenticated.
\n認証エラーです。API KEYをご確認ください。\n"
},
"403": {
"description": "Forbidden.
\n対象の転送設定を参照する権限がありません。\n"
},
"404": {
"description": "Not found.
\n要求したリソースが見つかりません。\n"
},
"503": {
"description": "Service unavailable.
\n実行ログの取得に失敗しました。時間をおいて再度お試しください。\n"
}
}
}
}
},
"components": {
"securitySchemes": {
"ApiKeyAuth": {
"type": "apiKey",
"in": "header",
"name": "Authorization",
"description": "認証キーとなるAPI KEYをAuthorization: Token {{API KEY}}の形式でヘッダーにセットします。
\nAPI KEYがabc123の場合は、Authorization: Token abc123とします。
\nAPI KEYの作成方法は、TROCCO API KEYの作成を参照ください。\n"
}
}
}
}
````