- 重要な情報
- はじめに
- 用語集
- エージェント
- インテグレーション
- OpenTelemetry
- 開発者
- API
- CoScreen
- アプリ内
- インフラストラクチャー
- アプリケーションパフォーマンス
- 継続的インテグレーション
- ログ管理
- セキュリティ
- UX モニタリング
- 管理
サポートされている Python インタープリター:
サポートされているテストフレームワーク:
Datadog にテスト結果を報告するには、Datadog Agent をインストールする必要があります。
Jenkins や自己管理型の GitLab CI などのオンプレミスの CI プロバイダー上でテストを実行している場合は、Agent のインストール手順に従って各ワーカーノードに Datadog Agent をインストールします。
CI プロバイダーがコンテナベースのエグゼキューターを使用している場合は、ビルド内の localhost
の使用で Datadog Agent が実行されている基底のワーカーノードではなく、コンテナ自体を参照するため、すべてのビルド (デフォルトは http://localhost:8126
) の DD_AGENT_HOST
環境変数をビルドコンテナ内からアクセス可能なエンドポイントに設定します。
Kubernetes エグゼキューターを使用している場合、Datadog は Datadog Admission Controller を使用することをお勧めします。これにより、ビルドポッドの DD_AGENT_HOST
環境変数が自動的に設定されてローカルの Datadog Agent と通信します。
GitHub Actions や CircleCI など、基底のワーカーノードにアクセスできないクラウドの CI プロバイダーを使用している場合は、コンテナ内の Datadog Agent をビルドサービスとして実行します。このメソッドは、各ワーカーノードへの Datadog Agent のインストールというオプションがない場合に、コンテナベースのエグゼキューターを使用するオンプレミス CI プロバイダーでも使用できます。
単純な結果フォワーダーとして機能するコンテナとして Datadog Agent を実行するには、Docker イメージ gcr.io/datadoghq/agent:latest
と次の環境変数を使用します。
DD_API_KEY
(必須)DD_INSIDE_CI
(必須)false
true
DD_HOSTNAME
(必須)none
さらに、選択したサイトを使用するように Datadog サイトを構成します ():
DD_SITE
datadoghq.com
次のセクションでは、Agent を実行し、テスト情報を報告するよう構成するために必要となる CI プロバイダー固有の手順をご説明します。
Azure Pipelines で Datadog Agent を実行するには、リソースセクションで新しいコンテナを定義し、それを サービスコンテナとして宣言しているジョブと関連付けます。
azure-pipeline.yml
variables:
ddApiKey: $(DD_API_KEY)
resources:
containers:
- container: dd_agent
image: gcr.io/datadoghq/agent:latest
ports:
- 8126:8126
env:
DD_API_KEY: $(ddApiKey)
DD_INSIDE_CI: "true"
DD_HOSTNAME: "none"
jobs:
- job: test
services:
dd_agent: dd_agent
steps:
- script: make test
<DD_SITE>
を選択したサイトに置き換えます:
azure-pipeline.yml
variables:
ddApiKey: $(DD_API_KEY)
resources:
containers:
- container: dd_agent
image: gcr.io/datadoghq/agent:latest
ports:
- 8126:8126
env:
DD_API_KEY: $(ddApiKey)
DD_INSIDE_CI: "true"
DD_HOSTNAME: "none"
DD_SITE: "<DD_SITE>"
jobs:
- job: test
services:
dd_agent: dd_agent
steps:
- script: make test
Datadog API キーを、キー DD_API_KEY
と合わせてプロジェクト環境変数に追加します。
GitLab で Agent を実行するには、 サービス下で Agent コンテナを定義します。
.gitlab-ci.yml
variables:
DD_API_KEY: $DD_API_KEY
DD_INSIDE_CI: "true"
DD_HOSTNAME: "none"
DD_AGENT_HOST: "datadog-agent"
test:
services:
- name: gcr.io/datadoghq/agent:latest
script:
- make test
<DD_SITE>
を選択したサイトに置き換えます:
.gitlab-ci.yml
variables:
DD_API_KEY: $DD_API_KEY
DD_INSIDE_CI: "true"
DD_HOSTNAME: "none"
DD_AGENT_HOST: "datadog-agent"
DD_SITE: "<DD_SITE>"
test:
services:
- name: gcr.io/datadoghq/agent:latest
script:
- make test
Datadog API キーを、キー DD_API_KEY
と合わせてプロジェクト環境変数に追加します。
GitHub Actions で Agent を実行するには、Datadog Agent GitHub Action datadog/agent-github-action
を使用します。
jobs:
test:
steps:
- name: Start the Datadog Agent locally
uses: datadog/agent-github-action@v1
with:
api_key: ${{ secrets.DD_API_KEY }}
- run: make test
<datadog_site>
を選択したサイトに置き換えます:
jobs:
test:
steps:
- name: Start the Datadog Agent locally
uses: datadog/agent-github-action@v1
with:
api_key: ${{ secrets.DD_API_KEY }}
datadog_site: <datadog_site>
- run: make test
Datadog API キーを、キー DD_API_KEY
と合わせてプロジェクト環境変数に追加します。
CircleCI で Agent を実行するには、テストを実行する前に datadog/agent CircleCI orb を使用して Agent コンテナを起動し、結果が Datadog に送信されたことを確認してから停止します。
.circleci/config.yml
version: 2.1
orbs:
datadog-agent: datadog/agent@0
jobs:
test:
docker:
- image: circleci/<language>:<version_tag>
steps:
- checkout
- datadog-agent/setup
- run: make test
- datadog-agent/stop
workflows:
test:
jobs:
- test
<DD_SITE>
を選択したサイトに置き換えます:
.circleci/config.yml
version: 2.1
orbs:
datadog-agent: datadog/agent@0
jobs:
test:
docker:
- image: circleci/<language>:<version_tag>
environment:
DD_SITE: "<DD_SITE>"
steps:
- checkout
- datadog-agent/setup
- run: make test
- datadog-agent/stop
workflows:
test:
jobs:
- test
Datadog API キーを、キー DD_API_KEY
と合わせてプロジェクト環境変数に追加します。
次のコマンドを実行して、Python トレーサーをインストールします。
pip install -U ddtrace
詳細については、Python トレーサーのインストールドキュメントを参照してください。
pytest
テストのインスツルメンテーションを有効にするには、pytest
の実行時に --ddtrace
オプションを追加し、DD_SERVICE
環境変数でテスト対象のサービスまたはライブラリの名前を、DD_ENV
環境変数でテストが実行されている環境を指定します (たとえば、開発者ワークステーションでテストを実行する場合は local
、CI プロバイダーでテストを実行する場合は ci
)。
DD_SERVICE=my-python-app DD_ENV=ci pytest --ddtrace
もし、残りの APM インテグレーションも有効にして flamegraph でより多くの情報を取得したい場合は、--ddtrace-patch-all
オプションを追加します。
DD_SERVICE=my-python-app DD_ENV=ci pytest --ddtrace --ddtrace-patch-all
テストの引数に ddspan
と宣言することで、テストにカスタムタグを追加することができます。
from ddtrace import tracer
# テストの引数として `ddspan` を宣言します
def test_simple_case(ddspan):
# タグを設定します
ddspan.set_tag("test_owner", "my_team")
# テストは正常に続きます
# ...
これらのタグに対して、フィルターや group by
フィールドを作成するには、まずファセットを作成する必要があります。タグの追加についての詳細は、Python カスタムインスツルメンテーションドキュメントのタグの追加セクションを参照してください。
以下は、コードか、または環境変数を使用した、トレーサーで使用できる最も重要なコンフィギュレーション設定のリストです。
ddtrace.config.service
DD_SERVICE
pytest
my-python-app
ddtrace.config.env
DD_ENV
none
local
、ci
次の環境変数を使用して、Datadog Agent の場所を構成できます。
DD_TRACE_AGENT_URL
http://hostname:port
の形式のトレース収集用の Datadog Agent URL。http://localhost:8126
他のすべての Datadog トレーサーコンフィギュレーションオプションも使用できます。
Datadog は、テスト結果を可視化し、リポジトリ、ブランチ、コミットごとにグループ化するために Git の情報を使用します。Git のメタデータは、CI プロバイダーの環境変数や、プロジェクトパス内のローカルな .git
フォルダがあれば、そこからテストインスツルメンテーションによって自動的に収集されます。
サポートされていない CI プロバイダーでテストを実行する場合や、.git
フォルダがない場合は、環境変数を使って Git の情報を手動で設定することができます。これらの環境変数は、自動検出された情報よりも優先されます。Git の情報を提供するために、以下の環境変数を設定します。
DD_GIT_REPOSITORY_URL
git@github.com:MyCompany/MyApp.git
、https://github.com/MyCompany/MyApp.git
DD_GIT_BRANCH
develop
DD_GIT_TAG
1.0.1
DD_GIT_COMMIT_SHA
a18ebf361cc831f5535e58ec4fae04ffd98d8152
DD_GIT_COMMIT_MESSAGE
Set release number
DD_GIT_COMMIT_AUTHOR_NAME
John Smith
DD_GIT_COMMIT_AUTHOR_EMAIL
john@example.com
DD_GIT_COMMIT_AUTHOR_DATE
2021-03-12T16:00:28Z
DD_GIT_COMMIT_COMMITTER_NAME
Jane Smith
DD_GIT_COMMIT_COMMITTER_EMAIL
jane@example.com
DD_GIT_COMMIT_COMMITTER_DATE
2021-03-12T16:00:28Z
CI Visibility を有効にすると、プロジェクトから以下のデータが収集されます。
お役に立つドキュメント、リンクや記事: