このリポジトリには、「Day 2 Operations - Cloud Native Observability Workshop」のハンズオンが含まれています。

事前準備

セットアップ

このラボでは、以下のサンプルアプリケーションを使用します。

学習内容

この演習では、Kubernetes(Microk8s)を実行しているLinuxインスタンスにOneAgentをデプロイし、そのインスタンスで実行されているものをOneAgentに発見させます。

Webブラウザでターミナルを使う

実験を円滑に進めるために、LinuxインスタンスにWebブラウザを介したターミナルでアクセスします。

メールに記載されているURLを使用して、SSHターミナルにアクセスします。URLが Public IP Address:8080/wetty のようになっていることを確認してください。

メールに記載されているログイン名パスワードを使用します。

Deploy

OneAgentのダウンロード

ブラウザを開き、DynatraceのURLにアクセスします。

以下の手順で行います。

Deploy

Monitor Kubernetes / Openshift**ページ内で、以下の手順を行います。

Deploy

例:

Connecting to github-releases.githubusercontent.com (github-releases.githubusercontent.com)|185.199.108.154|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 7310 (7.1K) [application/octet-stream]
Saving to: ‘install.sh'

install.sh                      100%[=====================================================>]   7.14K  --.-KB/s    in 0s      

2021-06-01 05:46:36 (40.7 MB/s) - ‘install.sh' saved [7310/7310]


Check for token scopes...

Check if cluster already exists...

Creating Dynatrace namespace...

Applying Dynatrace Operator...
Warning: apiextensions.k8s.io/v1beta1 CustomResourceDefinition is deprecated in v1.16+, unavailable in v1.22+; use apiextensions.k8s.io/v1 CustomResourceDefinition
customresourcedefinition.apiextensions.k8s.io/dynakubes.dynatrace.com created
serviceaccount/dynatrace-dynakube-oneagent created
serviceaccount/dynatrace-dynakube-oneagent-unprivileged created
serviceaccount/dynatrace-kubernetes-monitoring created
serviceaccount/dynatrace-operator created
serviceaccount/dynatrace-routing created
podsecuritypolicy.policy/dynatrace-dynakube-oneagent created
podsecuritypolicy.policy/dynatrace-dynakube-oneagent-unprivileged created
podsecuritypolicy.policy/dynatrace-kubernetes-monitoring created
podsecuritypolicy.policy/dynatrace-operator created
podsecuritypolicy.policy/dynatrace-routing created
role.rbac.authorization.k8s.io/dynatrace-dynakube-oneagent created
role.rbac.authorization.k8s.io/dynatrace-dynakube-oneagent-unprivileged created
role.rbac.authorization.k8s.io/dynatrace-kubernetes-monitoring created
role.rbac.authorization.k8s.io/dynatrace-operator created
role.rbac.authorization.k8s.io/dynatrace-routing created
clusterrole.rbac.authorization.k8s.io/dynatrace-kubernetes-monitoring created
clusterrole.rbac.authorization.k8s.io/dynatrace-operator created
rolebinding.rbac.authorization.k8s.io/dynatrace-dynakube-oneagent created
rolebinding.rbac.authorization.k8s.io/dynatrace-dynakube-oneagent-unprivileged created
rolebinding.rbac.authorization.k8s.io/dynatrace-kubernetes-monitoring created
rolebinding.rbac.authorization.k8s.io/dynatrace-operator created
rolebinding.rbac.authorization.k8s.io/dynatrace-routing created
clusterrolebinding.rbac.authorization.k8s.io/dynatrace-kubernetes-monitoring created
clusterrolebinding.rbac.authorization.k8s.io/dynatrace-operator created
deployment.apps/dynatrace-operator created
W0601 05:46:39.025776   29593 helpers.go:553] --dry-run is deprecated and can be replaced with --dry-run=client.
secret/dynakube configured

Applying DynaKube CustomResource...
dynakube.dynatrace.com/dynakube created

Adding cluster to Dynatrace...
Kubernetes monitoring successfully setup.
$

Deployment statusでインストールを検証する

Show deployment statusをクリックして、接続されているホストの状態を確認します。

下の画像のように、接続されたホストが表示されているはずです。

Deploy

Sockshopアプリケーションの再起動

サンプルアプリSockshopを再起動するには、以下のコマンドを実行します。

kubectl delete po --all -n dev
kubectl delete po --all -n production

Sockshopアプリケーションの探索

Dynatrace上で、以下の手順でSockshopのURLを取得します。

Smartscapeを探る

Easy Travel の起動を待っている間に、Dynatrace を探索し、Smartscape を使用して、Dynatrace が Easy Travel アプリケーションを構成するプロセスと依存関係を自動的に発見することができます。

Dynatraceの4つの魅力をご紹介します。

Smartscape

この演習では、Dynatrace環境の設定を自動化します。

Dynatrace Monitoring as Code (Monaco)を使うと、人の手を介さずに、グローバルなDynatrace環境すべての設定を自動化することができます。様々な使用例があります。

セッションを円滑に進めるために、monacoのコードを以下のように実行することができます。

cd sockshop
./deploy-monaco.sh

設定後、DT_TENANTDT_API_TOKENDT_DASHBOARD_OWNERの変数を設定します。 これらは、ラボの登録メール内に記載されています。

export DT_TENANT= https://mou612.managed-sprint.dynalabs.io/e/<ENV>
export DT_API_TOKEN=dt0c01.IH6********************************************
export DT_DASHBOARD_OWNER=<your email address>

設定後、以下のコマンドを実行してDynatraceの設定を行います。

./push-monaco.sh

以下の設定を行いました。

この演習では、基本的なサービスレベル目標(SLO)の設定について説明します。これらの目標は、ビジネスのサービスレベル合意(SLA)を満たすために測定されたサービスレベル指標(SLI)の目標に基づいています。

SLOの作成

左側のナビでService level objectives > Add new SLOに進みます。

ここでは、Sockshop FrontendのSLOを作成します。以下のように使用します。

SLO

この演習では、事前にサービスレベル目標(SLO)を設定する方法を説明します。この目標を達成するためには、まずカスタム指標を作成し、次に測定されたサービスレベル指標(SLI)をターゲットにして、ビジネスのサービスレベルアグリーメント(SLA)を達成する必要があります。

カタログページのメトリクス作成

次に、カタログページへのリクエスト成功数のカスタム指標を作成します。

SLO

SLO

カタログ掲載用SLOの作成

SLO

左のナビゲーションバーを参照し、Dashboardsに進みます。Dynatraceには、Kubernetes DashboardsReal User Monitoringといったダッシュボードのテンプレートがあらかじめ用意されています。

モナコのロールアウトの一環として、以下のようなダッシュボードも作成されています。 Environment Overview DashboardPrometheus - Environment Overview Dashboardです。

Session-properties

それぞれのダッシュボードにドリルダウンして、アプリオーナーやビジネスユーザー向けの様々なダッシュボードウィジェットをご覧いただけます。

Session-properties

SLOウィジェットの追加

これから、作成した新しいSLOに基づいて、新しいSLOウィジェットを追加します。

左のナビで、Service level objectivesに進みます。

pin iconを使って、Environment Overview Dashboardに固定することができます。

Session-properties

カスタム・メトリック・ウィジェットの追加

環境概要ダッシュボードの中で、編集**をクリックします。

カスタム・チャート」ウィジェットをダッシュボードにドラッグし、「カスタム・チャートの設定」をクリックします。

Session-properties

CODEでカスタムメトリックウィジェットを追加する

ダッシュボード・ビューに戻り、新しく作成したウィジェットをクリックして、別のカスタムチャートをクローン化します。

新しいウィジェットで、カスタムチャートを設定をクリックします。

データエクスプローラービューに戻り、以下のようにします。

Session-properties

また、Dynatraceにはリリース分析ソリューションが組み込まれており、導入したアプリケーションのバージョンやステージを判断するのに役立ちます。

左のナビでReleasesに移動します。

Session-properties

これは、展開されたコンポーネントのバージョンとそのリリースイベントの概要を示しています。

各コンポーネントの詳細を見ると、それぞれのコンポーネントの追加メタデータが表示されます。 これにより、監視対象のコンポーネントのコンテキストや、コンポーネントのライフサイクルおよび問題の追跡に関する情報が提供されます。

Session-properties

このラボを楽しんでいただき、お役に立てれば幸いです。ご意見、ご感想をお待ちしております。

このラボでの全体的な経験はどうでしたか?

とても良い 良い 普通 悪い とても悪い

このラボから最も恩恵を受けたことは何ですか?

KubernetesへのOneAgentの導入 GitOps / コードとしてのモニタリング サービスレベル目標 Releases

このラボを友人や同僚に勧める可能性はどの程度ありますか?

強く勧めたい 勧めたい わからない 勧めない 全く勧めない