🐣
Sentry APIを試しに触ってみた
こんにちは!
株式会社ココナラプロダクト開発部フロントエンドグループでエンジニアをしている maitoです。
coconalaでは、フロントエンドにSentryを導入しており、日々発生するエラーについてモニタリングをしているのですが、業務の生産性を向上させるために、Sentryをもっと活用できないかと調べていたところ、APIがあることを発見し、今回試しに触ってみました。
そもそもSentryとは
Sentryとは、400万人以上の開発者によって利用されているアプリケーションから発生するエラーをモニタリングするツールです。
Sentry APIを実行する前の準備
Sentry APIを実行するにあたって、Authentication Tokenが必要なので、その準備を行いました。
- 「設定」→「組織」→「Custom Integrations」の「Create New Integration」をクリックします。
- 「Issue & Event」を「Read」にして保存します。
- 保存した後、Authentication Tokenをメモします。
保存した後、APIを実行するにあたって必要になるAuthentication Tokenをメモします。
Sentry APIの実行
今回、issueがリスト化されたデータをほしいと思ったので、
List a Project's Issues
を試しに、実行しました。
検索キーワードとして、ここでは、仮にqueryパラメータにtestを設定しています。
curl 'https://sentry.io/api/0/projects/{organization_id}/{project_id}/issues/?query=test' \
-H 'Authorization: Bearer <auth_token>'
<auth_token>には、先ほどメモしたAuthentication Tokenを利用します。
Sentry APIの実行結果
実行した結果、以下のようなissueに関連するJSONデータを取得することができました。
(一部「xxx」という形でデータを省略しています。)
[
{
"id": "xxx",
"shareId": null,
"shortId": "",
"title": "NetworkError: Failed to execute 'send' on 'XMLHttpRequest': Failed to load 'xxx",
"culprit": "XMLHttpRequest.<anonymous>(xxx)",
"permalink": "https://xxx.sentry.io/issues/xxx/",
"logger": null,
"level": "error",
"status": "unresolved",
"statusDetails": {},
"substatus": "ongoing",
"isPublic": false,
"platform": "javascript",
"project": {
"id": "",
"name": "Vue",
"slug": "",
"platform": ""
},
"type": "error",
"metadata": {
"value": "Failed to execute 'send' on 'XMLHttpRequest': Failed to load '': Document is already detached.",
"type": "NetworkError",
"filename": "xxx",
"function": "xxx",
"display_title_with_tree_label": false,
"in_app_frame_mix": "mixed",
"sdk": {
"name": "sentry.javascript.vue",
"name_normalized": "sentry.javascript.vue"
},
"initial_priority": XXX,
"title": null
},
"numComments": 0,
"assignedTo": null,
"isBookmarked": false,
"isSubscribed": false,
"subscriptionDetails": null,
"hasSeen": false,
"annotations": [],
"issueType": "error",
"issueCategory": "error",
"priority": "high",
"priorityLockedAt": null,
"isUnhandled": false,
"count": "XX",
"userCount": XX,
"firstSeen": "2023-12-05T18:39:00.976000Z",
"lastSeen": "2024-06-09T07:26:38.511000Z",
"stats": {
"24h": [
[xxx, 0],
/* 省略 */
]
}
}
]
触ってみてどうだったか?
今回、試しにSentry APIを使ってJSONデータを取得できましたが、
検索機能やソート機能つきのUIに落とし込むことによってよりフル活用できるかなと思いました。
さいごに
ココナラでは、一緒に事業の課題を解決するエンジニアを募集しています!
気になった方は採用ページをぜひご覧ください。
Discussion