ビルド分析
Quarkusチームは、Quarkusの著しい成長を示すMavenのダウンロード数と 、問題や懸念を報告するユーザー数について、限られた知識しか持っていません。それでも、ユーザーが使用しているプラットフォーム、オペレーティングシステム、Javaの組み合わせ、ビルドツールに関するより多くの情報が必要です。ビルド分析ツールは、この情報を提供することを目的としています。
動作原理
収集はビルド時にのみ行われます 、実行時には行われません。収集は、Quarkusのビルドツール(Maven、Gradle)の使用中に行われます。ビルドされたアプリケーションには、データ収集コードは含まれません。
収集されたデータはすべて匿名です。 このデータを個人や組織に結びつける方法はありません。一般的なパターンや傾向を知ることが目的であるため、匿名のデータのみが必要です。
収集はデフォルトで無効になっています。 最初にdevモードを使用するときに、データ収集に参加するかどうか尋ねられます。コンソールはあなたの入力を数秒間待ちます。
これが収集されたデータです。
-
匿名アプリケーション名。Group Id + Artifact Id の SHA-256 ハッシュ。
-
匿名アプリケーションのバージョン。Artifact Id + VersionのSHA-256ハッシュ。
-
匿名ユーザーID。1回目のビルドの際、これはローカルでランダムに生成され、その後再利用されます。
-
Quarkusバージョン
-
Javaバージョン
-
GraalVMバージョン
-
オペレーティングシステムの詳細: OS名、OSバージョン、アーキテクチャ
-
ビルドシステムの詳細、Maven、Gradleなど。
-
CIシステムが検出されるか
-
国とタイムゾーン
-
拡張機能が有効かどうか。
groupIds
がio.quarkus
か、io.quarkiverse
で始まるか、quarkusプラットフォームに含まれているエクステンションのみが収集されます。
そして、これが送信されるデータペイロードの例です:
{
"context": {
"app": {
"name": "ZzOlt3q0VgNK0oyUd6NDAhPqJjTSxNOAnqHb5dHfS7M=",
"version": "FUDdh16tTKtuJkcoY2Wp57IKKwxZ/Hx42tTvi3Izpmc="
},
"build": {
"gradle_version": "N/A",
"maven_version": "3.8.7"
},
"ci": {
"name": "unknown"
},
"graalvm": {
"java_version": "N/A",
"vendor": "N/A",
"version": "N/A"
},
"ip": "0.0.0.0",
"java": {
"vendor": "Eclipse Adoptium",
"version": "17.0.4.1"
},
"kubernetes": {
"detected": "false"
},
"library": {
"name": "unknown",
"version": "unknown"
},
"location": {
"country": "PT"
},
"os": {
"name": "Mac OS X",
"os_arch": "aarch64",
"version": "13.3.1"
},
"quarkus": {
"version": "999-SNAPSHOT"
},
"timezone": "Europe/Lisbon"
},
"event": "BUILD",
"integrations": {},
"messageId": "api-2PCI9LWQM8oRyHIS6fCQMIQ0dlR",
"originalTimestamp": "2023-05-01T15:21:22.266033Z",
"properties": {
"app_extensions": [
{
"artifact_id": "quarkus-resteasy-jackson",
"group_id": "io.quarkus",
"version": "999-SNAPSHOT"
},
{
"artifact_id": "quarkus-smallrye-openapi",
"group_id": "io.quarkus",
"version": "999-SNAPSHOT"
},
{
"artifact_id": "quarkus-hibernate-orm",
"group_id": "io.quarkus",
"version": "999-SNAPSHOT"
},
{
"artifact_id": "quarkus-opentelemetry",
"group_id": "io.quarkus",
"version": "999-SNAPSHOT"
},
{
"artifact_id": "quarkus-jdbc-postgresql",
"group_id": "io.quarkus",
"version": "999-SNAPSHOT"
},
{
"artifact_id": "quarkus-arc",
"group_id": "io.quarkus",
"version": "999-SNAPSHOT"
}
]
},
"receivedAt": "2023-05-01T15:21:23.184Z",
"timestamp": "2023-05-01T15:21:22.266Z",
"type": "track",
"userId": "872332b4-4b21-42ee-854b-d86c8629e78b"
}
設定ファイルはどこにありますか?
分析設定は、ユーザーのホーム・ディレクトリーにある .redhat
フォルダーに保存されます:
anonymousId
はローカルで生成された匿名ユーザーIDです。
io.quarkus.analytics.localconfig
は、ユーザーが分析データの送信に同意したかどうかを保持します。
io.quarkus.analytics.remoteconfig
リモート・コンフィギュレーションのキャッシュで、アナリティクスをグローバルに無効にできます。
コードを見せてください!
コードの大部分は analytics-common
モジュールに実装されています。データはMavenとGradleプラグインから io.quarkus.analytics.AnalyticsService.sendAnalytics(…)
を呼び出すことで送信されます。
アップロードされたイベントは、プロジェクトの /target
フォルダの下に build-analytics-event.json
という名前で保存されます。
分析を無効にするには?
ビルド時解析はデフォルトではアクティブになっていません。
オプトイン済みで、ビルド時解析を無効にしたい場合は、2つの方法があります:
-
グローバルでは、ユーザーのホームディレクトリの「.redhat」フォルダにある
io.quarkus.analytics.localconfig
ファイルを編集します。以下のようにファイルを更新してください:
{"disabled":true}
-
プロジェクトごとに、プロジェクト構築時にシステムプロパティ
quarkus.analytics.disabled=true
を使用
mvn clean install -Dquarkus.analytics.disabled=true