Devin Desktop は、カスタム分析用の API をサポートしています。オートコンプリート、チャット、Command に関するデータをクエリできるほか、さまざまなフィルタ、グループ化、集計にも対応しています。
すべての使用例は curl で示していますが、他の言語の HTTP リクエストにも置き換えられます。
Analytics API は Enterprise プランで利用できます
ユーザーデータ Analytics API の仕様
TeamsページのUsersテーブルのデータは、次のコマンドで取得できます。
curl -X POST --header "Content-Type: application/json" \
--data '{
"service_key": "<SERVICE_KEY>",
"group_name": "<GROUP_NAME>",
"start_timestamp": "<START_TIMESTAMP>",
"end_timestamp": "<END_TIMESTAMP>"
}' \
https://server.codeium.com/api/v1/UserPageAnalytics
SERVICE_KEY: サービスキーです。管理者ユーザーは、設定ページのサービスキーセクションから作成できます。サービスキーのロールには、“Teams Read-only” 権限が必要です。
GROUP_NAME: 絞り込みに使用するグループ名です。このフィールドは任意です。
START_TIMESTAMP/END_TIMESTAMP: RFC 3339 形式のタイムスタンプです。例: 2023-01-01T00:00:00Z
{
"userTableStats": [
{
"name": "Alice",
"email": "alice@cognition.ai",
"lastUpdateTime": "2024-10-10T22:56:10.771591Z",
"apiKey": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
"activeDays": 178,
"teamStatus": "USER_TEAM_STATUS_APPROVED"
},
{
"name": "Bob",
"email": "bob@cognition.ai",
"lastUpdateTime": "2024-10-10T18:11:23.980237Z",
"apiKey": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb",
"activeDays": 462,
"teamStatus": "USER_TEAM_STATUS_APPROVED"
},
{
"name": "Charlie",
"email": "charlie@cognition.ai",
"lastUpdateTime": "2024-10-10T16:43:46.117870Z",
"apiKey": "cccccccc-cccc-cccc-cccc-cccccccccccc",
"activeDays": 237,
"teamStatus": "USER_TEAM_STATUS_PENDING"
}
]
}
アナリティクスページで確認できるCascade固有のデータは、API経由で取得できます。
curl -X POST --header "Content-Type: application/json" \
--data '{
"service_key": "<SERVICE_KEY>",
"group_name": "<GROUP_NAME>",
"start_timestamp": "<START_TIMESTAMP>",
"end_timestamp": "<END_TIMESTAMP>",
"emails": ["<EMAIL>","<EMAIL>,..."],
"ide_types": ["<IDE_TYPE>","<IDE_TYPE>,..."],
"query_requests": [
{
"<CASCADE_DATA_SOURCE>": {}
}
]
}' \
https://server.codeium.com/api/v1/CascadeAnalytics
SERVICE_KEY: サービスキーです。管理者ユーザーは チーム設定 から新しいキーを作成できます
GROUP_NAME: フィルタリング対象のグループ名です。このフィールドは任意です。emails が設定されている場合は設定できません。
START_TIMESTAMP/END_TIMESTAMP: RFC 3339 形式のタイムスタンプです。たとえば 2023-01-01T00:00:00Z です
EMAILS: フィルタリング対象のメールアドレスのリストです。このフィールドは任意です。group_name が設定されている場合は設定できません。
IDE_TYPES: フィルタリング対象の IDE タイプのリストです。このフィールドは任意です。指定可能な値は以下で説明します。
QUERY_REQUESTS: 実行するクエリリクエストのリストです。このフィールドは必須です。CASCADE_DATA_SOURCE の指定可能な値は以下で説明します。
curl -X POST --header "Content-Type: application/json" \
--data '{
"service_key": "my_random_test_key",
"group_name": "my_group_name",
"start_timestamp": "2025-01-01T00:00:00Z",
"end_timestamp": "2025-01-02T00:00:00Z",
"emails": ["my_email@cognition.ai", "my_email2@cognition.ai"],
"ide_types": ["editor"],
"query_requests": [
{
"cascade_lines": {}
},
{
"cascade_runs": {}
}
]
}' \
https://server.codeium.com/api/v1/CascadeAnalytics
cascade データは IDE の種類ごとに分類されています。クエリで ide_types フィールドを指定しない場合は、すべての IDE のデータが返されます。特定の 1 つの IDE のデータだけをクエリする場合は、次のいずれかのオプションを利用できます。
- Devin Desktop Editor の場合は
"editor"
- JetBrains Plugin の場合は
"jetbrains"
- Devin CLI の場合は
"cli"
Devin CLI ("cli") で絞り込む場合、データが返されるのは cascade_runs のみです。cascade_lines と cascade_tool_usage のデータソースは Devin CLI ではサポートされておらず、空の結果が返されます。
CASCADE_DATA_SOURCE には、3 つの値を設定できます
1日ごとの、提案および受け入れられた cascade_lines のデータをクエリするには、cascade_lines を利用します。
出力例:
{
"queryResults": [
{
"cascadeLines": {
"cascadeLines": [
{
"day": "2025-05-01T00:00:00Z",
"linesSuggested": "206",
"linesAccepted": "157"
},
{
"day": "2025-05-02T00:00:00Z",
"linesSuggested": "16"
},
{
"day": "2025-05-03T00:00:00Z",
"linesSuggested": "169",
"linesAccepted": "168"
}
]
}
}
]
}
linesSuggested: 指定日に提案された行数。
linesAccepted: 指定日に採用された行数。
モデルの使用量、クレジット消費量、モードのデータをクエリするには、cascade_runs を利用します。
出力例:
{
"queryResults": [
{
"cascadeRuns": {
"cascadeRuns": [
{
"day": "2025-05-01T00:00:00Z",
"model": "Claude 3.7 Sonnet (Thinking)",
"mode": "CONVERSATIONAL_PLANNER_MODE_DEFAULT",
"messagesSent": "1",
"cascadeId": "0d35c1f7-0a85-41d0-ac96-a04cd2d64444"
},
{
"day": "2025-05-01T00:00:00Z",
"model": "SWE-1",
"mode": "UNKNOWN",
"promptsUsed": "125",
"cascadeId": "0d35c1f7-0a85-41d0-ac96-a04cd2d64444"
},
{
"day": "2025-05-01T00:00:00Z",
"model": "GPT-4.1 (promo)",
"mode": "CONVERSATIONAL_PLANNER_MODE_DEFAULT",
"messagesSent": "5",
"cascadeId": "1f450ba3-06aa-4ba5-9e12-d3b98c2d33d3"
},
]
}
}
]
}
day: 実行日。
model: メッセージに使用されたモデル。
mode: 実行モード。CONVERSATIONAL_PLANNER_MODE_DEFAULT (書き込みモード) 、CONVERSATIONAL_PLANNER_MODE_READ_ONLY (読み取りモード) 、CONVERSATIONAL_PLANNER_MODE_NO_TOOL (レガシーモード) 、または UNKNOWN のいずれかです。
messagesSent: 送信されたメッセージ数。
cascadeId: 実行の ID。この ID を使うと、ユーザーがメッセージを何回送信したかではなく、開始された個別の会話数を把握できます。
promptsUsed: 使用されたクレジット数。この値はセント単位で返されます。たとえば、0.25 クレジットは 25、1 クレジットは 100 として返されます。
API から返されるデータは生の形式であるため、“UNKNOWN” の値が含まれることがあります。このデータソースを独自のメトリクスに利用する場合は、関心のある具体的なメトリクスごとに集計することをおすすめします (例: promptsUsed フィールドを合計してユーザーの使用量パターンを把握する、messagesSent を集計してユーザーの利用状況を把握する、など) 。これは、mode と prompt のデータが複数のエントリに分かれて記録される可能性があるためです。
ツール使用量に関するデータをクエリするには、cascade_tool_usage を利用します。なお、返されるのは指定された期間内のツール利用回数の集計値です。
出力例:
{
"queryResults": [
{
"cascadeToolUsage": {
"cascadeToolUsage": [
{
"tool": "CODE_ACTION",
"count": "15"
},
{
"tool": "LIST_DIRECTORY",
"count": "20"
},
{
"tool": "MCP_TOOL",
"count": "12"
},
{
"tool": "MEMORY",
"count": "4"
}
]
}
}
]
}
tool: そのメッセージで使用されたツール。
count: ツールが使用された回数。
以下は、返される列挙値と、UI に表示される表示名の対応表です。
- CODE_ACTION: ‘コード編集’
- VIEW_FILE: ‘ファイルを閲覧’
- RUN_COMMAND: ‘コマンドを実行’
- FIND: ‘検索ツール’
- GREP_SEARCH: ‘Grep 検索’
- VIEW_FILE_OUTLINE: ‘ファイルのアウトラインを閲覧’
- MQUERY: ‘Riptide’
- LIST_DIRECTORY: ‘ディレクトリを一覧表示’
- MCP_TOOL: ‘MCP ツール’
- PROPOSE_CODE: ‘コードを提案’
- SEARCH_WEB: ‘Web を検索’
- MEMORY: ‘メモリ’
- PROXY_WEB_SERVER: ‘ブラウザプレビュー’
- DEPLOY_WEB_APP: ‘Web アプリをデプロイ’
一部のデータソースでは、Custom Analytics API を介してクエリを柔軟にカスタマイズできます。
選択、フィルター、集計、並べ替えの完全なスキーマは、次のセクションに JSON 形式で記載されています。3 つのデータソースそれぞれのクエリ例と、クエリのデバッグに関するヒントは、ドキュメントの末尾に記載しています。
curl -X POST --header "Content-Type: application/json" \
--data '{
"service_key": "<SERVICE_KEY>",
"group_name": "<GROUP_NAME>",
"query_requests": [
{
"data_source": "QUERY_DATA_SOURCE_<DATA_SOURCE>",
"selections": [
<LIST OF SELECTIONS>
],
"filters": [
<LIST OF FILTERS>
],
"aggregations": [
<LIST OF AGGREGATIONS>
],
}
]
}' \
https://server.codeium.com/api/v1/Analytics
DATA_SOURCE: オートコンプリート、チャット、Command、PCW、または Cascade のどのデータを参照するかに応じて、USER_DATA、CHAT_DATA、COMMAND_DATA、PCW_DATA、または CASCADE_DATA のいずれかを選択します。
SERVICE_KEY: サービスキーです。管理者ユーザーは チーム設定 から新しいサービスキーを作成できます。サービスキーのロールには、“Analytics Read” 権限が必要です。
GROUP_NAME: フィルタリング対象のグループ名です。このフィールドは任意です。
選択は必須です。各選択項目は、クエリする値に対応します。
{
"field": "<FIELD_NAME>",
"name": "<NAME>",
"aggregation_function": "QUERY_AGGREGATION_<AGGREGATION_FUNCTION>"
}
FIELD_NAME: クエリするフィールドです。以下の「Available Fields」セクションを参照してください。
NAME: フィールドの別名です。指定しない場合は、<AGGREGATION_FUNCTION>_<FIELD_NAME> の小文字版 (例: sum_num_acceptances) になります。他のすべてのフィールド名および集計名と重複しないようにする必要があります。
AGGREGATION_FUNCTION: UNSPECIFIED、COUNT、SUM、AVG、MAX、MIN のいずれかを指定する必要があります。“aggregation_function” が指定されていない場合、デフォルトは UNSPECIFIED です。
フィルターは、特定の条件を満たす要素のみを含むようにデータを絞り込むために利用されます。省略可能です。
{
"name": "<NAME>",
"value": "<VALUE>",
"filter": "QUERY_FILTER_<FILTER>"
}
NAME: フィルタするフィールドの名前です。フィルタ対象の項目が Selection/Aggregation と同じ場合、これはそのフィールド/集計の名前と一致している必要があります。
VALUE: 比較対象の値です。
FILTER: EQUAL、NOT_EQUAL、GREATER_THAN、LESS_THAN、GE (以上) 、LE (以下) のいずれかです。
集計は、指定した条件に基づいてデータをグループ分けするために利用されます。省略可能です。
{
"field": <FIELD_NAME>,
"name": <NAME>
}
FIELD_NAME: クエリする対象のフィールドです。「Available Fields」セクションを参照してください。
NAME: フィールドの別名です。他のすべてのフィールド名および集計名と重複しない必要があります。
USER_DATA ソースのすべてのデータは、ユーザーごと・時間ごとに集計されます。
注: PCW (コード記述率) は現在、専用のテーブルを持っており、user_data テーブルには依存していません。
| Field Name | Description | Valid Aggregations |
|---|
| api_key | ユーザーのAPIキーの hash。 | UNSPECIFIED, COUNT |
| date | オートコンプリートの UTC 日付。 | UNSPECIFIED, COUNT |
| date UTC-x | タイムゾーン オフセットを加味したオートコンプリートの日付。たとえば、PST の場合は “date UTC-8” になります。 | UNSPECIFIED, COUNT |
| hour | オートコンプリートの UTC 時間。 | UNSPECIFIED, COUNT |
| language | 使用されているプログラミング言語。 | UNSPECIFIED, COUNT |
| ide | 使用されていた IDE。 | UNSPECIFIED, COUNT |
| version | 使用された Devin Desktop のバージョン。 | UNSPECIFIED, COUNT |
| num_acceptances | ユーザーがオートコンプリートを受け入れた回数。これは、ユーザーがコードをある程度記述し、グレーのテキストを確認して、tab キーを押したときに発生します。 | SUM, MAX, MIN, AVG |
| num_lines_accepted | オートコンプリートから受け入れたコード行数。 | SUM, MAX, MIN, AVG |
| num_bytes_accepted | オートコンプリートから受け入れたバイト数。 | SUM, MAX, MIN, AVG |
| distinct_users | 重複を除いたユーザー数。 | UNSPECIFIED, COUNT |
| distinct_developer_days | 重複を除いた (users, day) の組み合わせ。 | UNSPECIFIED, COUNT |
| distinct_developer_hours | 重複を除いた (users, hour of day) の組み合わせ。 | UNSPECIFIED, COUNT |
チャットデータ API で提供されるすべてのデータは、ユーザーの質問ではなく、チャットモデルの応答に関するものであることに注意してください。
| Field Name | Description | Valid Aggregations |
|---|
| api_key | ユーザーのAPIキーのhash | UNSPECIFIED, COUNT |
| model_id | デプロイ時に設定されるチャットモデルのID。 | UNSPECIFIED, COUNT |
| date | チャット応答の UTC 日付。 | UNSPECIFIED, COUNT |
| date UTC-x | タイムゾーン オフセットを含むチャット応答の日付。たとえば、PST の場合は “date UTC-8” です。 | UNSPECIFIED, COUNT |
| ide | 使用されていた IDE | UNSPECIFIED, COUNT |
| version | 使用された Devin Desktop のバージョン | UNSPECIFIED, COUNT |
| latest_intent_type | モデルの応答がコードレンズによって生成されたものか、通常のチャットによるものかを示します。通常のチャットは次に対応します:
CHAT_INTENT_GENERIC
コードレンズは次のいずれかに対応します:
CHAT_INTENT_FUNCTION_EXPLAIN CHAT_INTENT_FUNCTION_DOCSTRING CHAT_INTENT_FUNCTION_REFACTOR CHAT_INTENT_CODE_BLOCK_EXPLAIN CHAT_INTENT_CODE_BLOCK_REFACTOR CHAT_INTENT_PROBLEM_EXPLAIN CHAT_INTENT_FUNCTION_UNIT_TESTS | UNSPECIFIED, COUNT |
| num_chats_received | Devin Desktop からユーザーに送信されたチャットメッセージ数。 | SUM, MAX, MIN, AVG |
| chat_accepted | Devin Desktop のチャット応答にコードブロックが含まれ、Thumbs up ボタンがクリックされた場合は True。 | SUM, COUNT |
| chat_inserted_at_cursor | Devin Desktop のチャット応答にコードブロックが含まれ、“Insert” ボタンがクリックされた場合は True。 | SUM, COUNT |
| chat_applied | Devin Desktop のチャット応答にコードブロックが含まれ、“Apply Diff” ボタンがクリックされた場合は True。 | SUM, COUNT |
| chat_loc_used | Devin Desktop のチャット応答にコードブロックが含まれ、“Insert”、“Copy”、または “Apply Diff” ボタンのいずれかが押された場合の利用コード行数。 | SUM, MAX, MIN, AVG |
Command データソースには、拒否されたものも含めてすべてのコマンドが含まれます。“accepted” フィールドを利用すると、受け入れられたコマンドのみに絞り込めます。
| Field Name | Description | Valid Aggregations |
|---|
| api_key | ユーザーの APIキーの hash 値。 | UNSPECIFIED, COUNT |
| date | コマンドの UTC 日付。 | UNSPECIFIED, COUNT |
| timestamp | コマンドの UTC タイムスタンプ。 | UNSPECIFIED, COUNT |
| language | 利用されているプログラミング言語。 | UNSPECIFIED, COUNT |
| ide | 利用されていた IDE。 | UNSPECIFIED, COUNT |
| version | 利用された Devin Desktop のバージョン。 | UNSPECIFIED, COUNT |
| command_source | コマンドがトリガーされた理由です。有効な値は次のとおりです。
COMMAND_REQUEST_SOURCE_LINE_HINT_CODE_LENS COMMAND_REQUEST_SOURCE_DEFAULT COMMAND_REQUEST_SOURCE_RIGHT_CLICK_REFACTOR COMMAND_REQUEST_SOURCE_FUNCTION_CODE_LENS COMMAND_REQUEST_SOURCE_FOLLOWUP COMMAND_REQUEST_SOURCE_CLASS_CODE_LENS COMMAND_REQUEST_SOURCE_PLAN COMMAND_REQUEST_SOURCE_SELECTION_HINT_CODE_LENS
COMMAND_REQUEST_SOURCE_DEFAULT は、通常の Command の利用に対応します。 | UNSPECIFIED, COUNT |
| provider_source | コマンドが生成モードと編集モードのどちらでトリガーされたかを示します。有効な値は次のとおりです。PROVIDER_SOURCE_COMMAND_GENERATE PROVIDER_SOURCE_COMMAND_EDIT | UNSPECIFIED, COUNT |
| lines_added | コマンドによって追加されたコード行数。 | SUM, MAX, MIN, AVG |
| lines_removed | コマンドによって削除されたコード行数。 | SUM, MAX, MIN, AVG |
| bytes_added | コマンドによって追加されたバイト数。 | SUM, MAX, MIN, AVG |
| bytes_removed | コマンドによって削除されたバイト数。 | SUM, MAX, MIN, AVG |
| selection_lines | コマンドによって選択されたコード行数。生成時は常にゼロになります。 | SUM, MAX, MIN, AVG |
| selection_bytes | コマンドによって選択されたバイト数。生成時は常にゼロになります。 | SUM, MAX, MIN, AVG |
| accepted | コマンドが受け入れられたかどうか。 | SUM, COUNT |
PCWデータ
| Field Name | Description | Valid Aggregations |
|---|
| percent_code_written | 記述されたコードの割合。(生成された codeium バイト数) / (生成された codeium バイト数 + ユーザーが記述したバイト数) として計算されます。この指標は、日単位やユーザー単位では変動が大きくなることがあるため、週単位で集計することを推奨します。 | UNSPECIFIED |
| codeium_bytes | codeium バイトの合計数。codeium_bytes_by_autocomplete + codeium_bytes_by_command と等しくなります | UNSPECIFIED |
| user_bytes | ユーザーが記述したバイト数の合計 | UNSPECIFIED |
| total_bytes | codeium_bytes + user_bytes | UNSPECIFIED |
| codeium_bytes_by_autocomplete | オートコンプリートによって生成された codeium バイトの合計数 | UNSPECIFIED |
| codeium_bytes_by_command | Command によって生成された codeium バイトの合計数 | UNSPECIFIED |
Cascade Dataソースには、Cascade に送信される各メッセージごとにエントリが含まれます。
以下に記載されているすべてのフィールドにアクセスするには、バージョン 1.11.2 以降を使用していることを確認してください。
| Field Name | Description | Valid Aggregations |
|---|
| api_key | ユーザーのAPIキーのhash。 | UNSPECIFIED, COUNT |
| date | コマンドのUTC日付。 | UNSPECIFIED, COUNT |
| prompts_used | Cascade へのプロンプトで使用されたprompt credits数で、セント単位で返されます。たとえば、0.25 クレジットは 25、1 クレジットは 100 として返されます。 | UNSPECIFIED, SUM, AVG, MIN, MAX |
| flex_credits_used | Cascade へのプロンプトにおける prompts_used 全体のうち、追加またはプールされたクレジットの使用数で、セント単位で返されます。たとえば、0.25 クレジットは 25、1 クレジットは 100 として返されます。 | UNSPECIFIED, SUM, AVG, MIN, MAX |
| model | Cascade に送信されたメッセージで使用されたモデル。 | UNSPECIFIED, COUNT |
| metadata | 開発環境に関連するメタデータを含むオブジェクト。現在、値が設定されるフィールドには次のものがあります: ideVersion | UNSPECIFIED, COUNT |
| | |
|---|
| Field Name | 説明 | 使用例 |
| api_key | ユーザーのAPIキーのhash値。 | |
| language | 使用しているプログラミング言語。 | KOTLIN, GO, JAVA |
| ide | 使用していたIDE。 | jetbrains, vscode |
| version | 使用していたDevin Desktopのバージョン | 1.28.0, 130.0 |
日付でフィルタリングするには、start_timestamp と end_timestamp を使用します。これらは RFC 3339 形式で指定する必要があります (例: 2023-01-01T00:00:00Z。以下の例を参照してください) 。
curl -X POST --header "Content-Type: application/json" \
--data '{
"service_key": SERVICE_KEY,
"query_requests": [
{
"data_source": "QUERY_DATA_SOURCE_USER_DATA",
"selections": [
{
"field": "num_acceptances",
"name": "num_acceptances",
"aggregation_function": "QUERY_AGGREGATION_SUM"
}
],
"filters": [
{
"name": "hour",
"filter": "QUERY_FILTER_GE",
"value": "2024-01-01"
},
{
"name": "hour",
"filter": "QUERY_FILTER_LE",
"value": "2024-02-01"
}
]
}
]
}' \
https://server.codeium.com/api/v1/Analytics
このクエリは、2024年1月の Percent Code Written の月間全体値を算出します。レスポンス例 (読みやすくするために JSON を整形しています) :
{
"queryResults": [
{
"responseItems": [
{
"item": {
"num_acceptances": "125",
"num_lines_accepted": "863"
}
}
]
}
]
}
curl -X POST --header "Content-Type: application/json" \
--data '{
"service_key": SERVICE_KEY,
"query_requests": [
{
"data_source": "QUERY_DATA_SOURCE_CHAT_DATA",
"selections": [
{
"field": "chat_loc_used",
"name": "chat_loc_used",
"aggregation_function": "QUERY_AGGREGATION_SUM"
}
],
"filters": [
{
"name": "latest_intent_type",
"filter": "QUERY_FILTER_EQUAL",
"value": "CHAT_INTENT_FUNCTION_DOCSTRING"
}
],
"aggregations": [
{
"field": "ide",
"name": "ide"
}
]
}
]
}' \
https://server.codeium.com/api/v1/Analytics
このクエリは、“Generate Docstring” コードレンズから承認されたコード行数の累計を、IDE ごとに集計して表示します。
レスポンス例:
{
"queryResults": [
{
"responseItems": [
{
"item": {
"chat_loc_used": "74",
"ide": "jetbrains"
},
},
{
"item": {
"chat_loc_used":"41",
"ide":"vscode"
},
}
]
}
]
}
curl -X POST --header "Content-Type: application/json" \
--data '{
"service_key": SERVICE_KEY,
"query_requests": [
{
"data_source": "QUERY_DATA_SOURCE_COMMAND_DATA",
"selections": [
{
"field": "lines_added",
"name": "lines_added",
"aggregation_function": "QUERY_AGGREGATION_SUM"
},
{
"field": "lines_removed",
"name": "lines_removed",
"aggregation_function": "QUERY_AGGREGATION_SUM"
}
],
"filters": [
{
"name": "provider_source",
"filter": "QUERY_FILTER_EQUAL",
"value": "PROVIDER_SOURCE_COMMAND_EDIT"
},
{
"name": "accepted",
"filter": "QUERY_FILTER_EQUAL",
"value": "true"
}
],
"aggregations": [
{
"field": "language",
"name": "language"
}
]
}
]
}' \
https://server.codeium.com/api/v1/Analytics
このクエリは、“edit” コマンドで追加・削除された行数を、プログラミング言語別に取得します。
レスポンス例:
{
"queryResults": [
{
"responseItems": [
{
"item": {
"language": "SHELL",
"lines_added": "5",
"lines_removed": "3"
}
},
{
"item": {
"language": "GO",
"lines_added": "31",
"lines_removed": "27"
}
},
{
"item": {
"language": "PYTHON",
"lines_added": "21",
"lines_removed": "5"
}
},
{
"item": {
"language": "UNSPECIFIED",
"lines_added": "91",
"lines_removed": "71"
}
},
{
"item": {
"language": "STARLARK",
"lines_added": "13",
"lines_removed": "1"
}
}
]
}
]
}
curl -X POST --header "Content-Type: application/json" \
--data '{
"service_key": SERVICE_KEY,
"start_timestamp": "2024-01-01T00:00:00Z",
"end_timestamp": "2024-12-22T00:00:00Z"
"query_requests": [
{
"data_source": "QUERY_DATA_SOURCE_PCW_DATA",
"selections": [
{
"field": "percent_code_written",
"name": "percent_code_written"
},
{
"field": "codeium_bytes",
"name": "codeium_bytes"
},
{
"field": "total_bytes",
"name": "total_bytes"
},
{
"field": "codeium_bytes_by_autocomplete",
"name": "codeium_bytes_by_autocomplete"
},
{
"field": "codeium_bytes_by_command",
"name": "codeium_bytes_by_command"
}
],
"filters": [
{
"filter": "QUERY_FILTER_EQUAL",
"name": "language",
"value": "GO"
}
]
}
],
}' \
https: //server.codeium.com/api/v1/Analytics
このクエリは、PCW (Percent Code Written) データと、言語 go でフィルタしたバイト数を取得します。
レスポンス例:
{
"queryResults": [
{
"responseItems": [
{
"item": {
"codeium_bytes": "6018",
"codeium_bytes_by_autocomplete": "4593",
"codeium_bytes_by_command": "1425",
"percent_code_written": "0.61",
"total_bytes": "9900"
}
}
]
}
]
}
1.10.0 以降では、無効なクエリに対してエラーメッセージが返されます。このセクションでは、よくあるエラーメッセージ、その意味、および該当するクエリのデバッグ方法を説明します。
| エラーメッセージ | 説明 |
|---|
| at least one field or aggregation is required | 選択または集計が 1 つも検出されませんでした。クエリリクエストに少なくとも 1 つ含まれていることを確認してください。 |
| invalid aggregation function for string type field ide: QUERY_AGGREGATION_SUM | 選択項目の 1 つで無効な集計関数が利用されています。この場合、“ide” フィールドに SUM を利用しようとしていますが、このフィールドがサポートしているのは COUNT と UNSPECIFIED のみです。 |
| invalid query table: QUERY_DATA_SOURCE_UNSPECIFIED | data_source フィールドにスペルミスがある可能性があります。スペルを再確認してください。 |
| all selection fields should have an aggregation function, or none of them should | 複数の選択フィールドがある場合は、すべてに aggregation_function を含めるか、どれにも含めないようにする必要があります。たとえば、次の選択は無効です。num_acceptances には合計が指定されていますが、num_lines_accepted には指定されていないためです。"selections": [
{
"field": "num_acceptances",
"name": "total_acceptances",
"aggregation_function": "QUERY_AGGREGATION_SUM"
},
{
"field": "num_lines_accepted",
"name": "total_lines_accepted",
"aggregation_function": "QUERY_AGGREGATION_UNSPECIFIED"
}
]
注: PCW は常に集計済みとして扱われます。aggregation_function が明示的に選択されていない場合は、unspecified と見なされます。これら両方のフィールドの情報が必要な場合は、別々の 2 つのクエリを利用してください。 |
| invalid aggregation function for string type field ide: QUERY_AGGREGATION_SUM | すべてのフィールドがすべての集計関数をサポートしているわけではありません。対応関係については、利用可能なフィールドのセクションを参照してください。この場合、クエリでは “ide” フィールドに QUERY_AGGREGATION_SUM 集計関数を利用していますが、これは無効です。 |
| tried to aggregate on a distinct field: distinct_developer_days. Consider aggregating on the non-distinct fields instead: [api_key date] | “distinct_*” パターンのフィールドは aggregations セクションに含めることはできません。このエラーでは、代わりに集計対象として利用できるフィールドが提案されています。したがって、次の代わりに:"aggregations": [
{
"field": "distinct_developer_days",
"name": "distinct_developer_days"
}
]
次を試してください:"aggregations": [
{
"field": "api_key",
"name": "api_key"
},
{
"field": "date",
"name": "date"
}
]
|
| duplicate field alias for selection/aggregation: num_acceptances | すべての selections と aggregations には異なる name が必要です。name が指定されていない場合、デフォルトでは <AGGREGATION_FUNCTION>_<FIELD_NAME> に設定されることに注意してください。 |
| invalid group name: GroupName | 指定された名前のグループが見つかりませんでした。スペルを再確認してください。 |