- 重要な情報
- はじめに
- 用語集
- エージェント
- インテグレーション
- OpenTelemetry
- 開発者
- API
- CoScreen
- アプリ内
- インフラストラクチャー
- アプリケーションパフォーマンス
- 継続的インテグレーション
- ログ管理
- セキュリティ
- UX モニタリング
- 管理
サポートされている Ruby インタープリター:
サポートされているテストフレームワーク:
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
と合わせてプロジェクト環境変数に追加します。
Ruby トレーサーをインストールするには
ddtrace
gem を Gemfile
に追加します。
Gemfile
ソース 'https://rubygems.org'
gem 'ddtrace', "~> 1.0"
bundle install
を実行して gem をインストールします
詳細については、Ruby トレーサーのインストールドキュメントを参照してください。
Cucumber インテグレーションでは、cucumber
フレームワークを使用している場合のシナリオとステップの実行をトレースすることができます。
インテグレーションをアクティブ化するには、次のコードをアプリケーションに追加します。
require 'cucumber'
require 'datadog/ci'
Datadog.configure do |c|
# CI でのみテストインスツルメンテーションをアクティブ化します
c.tracing.enabled = (ENV["DD_ENV"] == "ci")
# 結果が確実に配信されるようにトレーサーを構成します
c.ci.enabled = true
# テスト中のサービスまたはライブラリの名前
c.service = 'my-ruby-app'
# Cucumber のインスツルメンテーションを有効にします
c.ci.instrument :cucumber
end
DD_ENV
環境変数でテストを実行する環境 (たとえば、開発者ワークステーションでテストを実行する場合は local
、CI プロバイダーでテストを実行する場合は ci
) を指定して、通常どおりにテストを実行します。例:
DD_ENV=ci bundle exec rake cucumber
RSpec インテグレーションでは、rspec
テストフレームワーク使用時に、グループ単位や個別での例の実行すべてをトレースできます。
インテグレーションを有効にするには、これを spec_helper.rb
ファイルに追加します。
require 'rspec'
require 'datadog/ci'
Datadog.configure do |c|
# CI でのみテストインスツルメンテーションをアクティブ化します
c.tracing.enabled = (ENV["DD_ENV"] == "ci")
# 結果が確実に配信されるようにトレーサーを構成します
c.ci.enabled = true
# テスト中のサービスまたはライブラリの名前
c.service = 'my-ruby-app'
# RSpec のインスツルメンテーションを有効にします
c.ci.instrument :rspec
end
DD_ENV
環境変数でテストを実行する環境 (たとえば、開発者ワークステーションでテストを実行する場合は local
、CI プロバイダーでテストを実行する場合は ci
) を指定して、通常どおりにテストを実行します。例:
DD_ENV=ci bundle exec rake spec
現在アクティブなスパンを使用して、テストにカスタムタグを追加することができます。
require 'ddtrace'
# テスト内
Datadog::Tracing.active_span&.set_tag('test_owner', 'my_team')
# テストは正常に続きます
# ...
これらのタグに対して、フィルターや group by
フィールドを作成するには、まずファセットを作成する必要があります。タグの追加についての詳細は、Ruby カスタムインスツルメンテーションドキュメントのタグの追加セクションを参照してください。
以下は、Datadog.configure
ブロックを使用するか、環境変数を使用するコードで、トレーサーで使用できる最も重要なコンフィギュレーション設定のリストです。
service
DD_SERVICE
$PROGRAM_NAME
my-ruby-app
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 を有効にすると、プロジェクトから以下のデータが収集されます。
お役に立つドキュメント、リンクや記事: