SLI と SLO のセットを作成すると、New Relic は SLI データの生成を開始します。最初の結果がUIに表示されるまで数分かかります。
サービスレベルの検索と表示
サービスレベルを見つけるには、いくつかの方法があります。
上部のナビゲーションバーのその他メニュー(カスタマイズ可能)のサービスレベルの下。ここでは、SLIをタグでフィルタリングできます。
SLIが定義されている エンティティ のプレビューで。UIのいたるところで見ることができます。例えば、エクスプローラーの ナビゲータービュー からエンティティをクリックしてみてください。
APM サービスで、レポートの項目で。
SLI または SLI 関連エンティティを含む任意の ワークロード で、
サービスまたはブラウザ アプリケーション。 特定のワークロードの下で SLI をグループ化する場合は、必ず APM サービスまたはブラウザー アプリを既存のワークロードに追加するか、 新しいワークロードを作成してください。
サービスレベルリストには、行ごとに1つのサービスレベルが表示され、サービスレベル名、それに関連するエンティティ、およびSLOのターゲットと期間が示されます。
サービスレベルをフィルタリングする
サービスレベルにタグを追加する場合は、フィルターバーを使用して、取得するサービスレベルをスコープダウンし、それらをグループ化します。
- フィルタリングを使用して、チームがまだコミットしていないテストまたは意欲的なサービスレベルを非表示にします。
- グループ化を使用して、特定の所有者、組織単位、またはユーザーフローにリンクされているサービスレベルに焦点を合わせます。
SLOコンプライアンスビューモード
達成しようとしていることに応じて、次のビューモードのいずれかを使用してSLO準拠を確認します。
- 運用:サービスの運用を担当する場合は、このビューを使用して、過去2時間、1日、7日、および28日のローリングウィンドウでのSLOコンプライアンスとエラーバジェットの傾向を確認します。
- 期間全体:ビジネスレビュー、回顧展、優先順位付け会議の場合、このビューを使用して、暦週または月ごとのコンプライアンスを比較します。
リクエストベースのSLOは、リクエストの総数に対する適切な応答の数の比率として定義されたSLIから決定されることに注意してください。これは、要求ベースのSLOが、その比率がSLOコンプライアンス期間の目標を満たすか超えるときに満たされることを意味します。
また、ローリング タイム ウィンドウの SLO コンプライアンス結果は、完全な週が含まれている場合により一貫性があります。したがって、SLO 期間には完全な週のみが含まれます。このように、計算には常に同じ数の週末が含まれ、週のどの曜日に SLO を表示するかに応じて、週ごとの季節性が結果に影響を与えることはありません。
操作のSLOを表示する
運用ビューは、さまざまな時間枠でサービスレベルがどのように向上または低下しているかを示します。
one.newrelic.com > All capabilities > Service levels
- SLOコンプライアンスセルの背景が緑色の場合は、その期間は順調に進んでいます。リクエストを100%正常に処理できなかった可能性がありますが、まだ消費するエラーバジェットが残っています。
- SLOコンプライアンスセルの背景が黄色の場合、エラーバジェットは完全に消費されそうになり、残りの期間はもっと注意する必要があります。
- SLOコンプライアンスセルの背景が赤の場合、この期間に目標SLOに到達しておらず、エラーバジェットをすべて消費しています。展開する必要がある場合は注意し、SLIを改善するための作業を計画してください。 SLOをクリックすると、ゴールデンメトリック、最新の展開、異常、進行中の問題など、エンティティに関する詳細データを表示できます。このデータは、SLOターゲットを逃した時期と理由を理解するのに役立ちます。
2 時間の枠内では、クライアントに大きな影響を与えるインシデントが迅速に表面化する可能性があります。この SLO が満たされていない場合は、調査を開始し、サービスの低下が続かないことを確認してください。一方、時間枠が長くなると、アラート条件を破るほど深刻ではない問題が表面化する可能性があり、そうでない場合は検出されない可能性があります。
また、過去1、7、および28日間の残りのエラーバジェットを取得して、エラーバジェットを回復または消費している速度を確認します。
ビジネスレビューのために期間中のSLOを表示する
特定のカレンダー頻度で発生するレビュー ミーティングでのレポートには、前期比ビューを使用します。このビューの付加価値は、特定のカレンダー期間の時間枠での SLO コンプライアンスのより長い履歴を表示することです。
one.newrelic.com > All capabilities > Service levels
- 期間を週と月の間で切り替えることができます。
- セルの色は、操作ビューで説明されているとおりに機能します。
サービスレベルの詳細を理解する
SLIをクリックして、SLIの詳細を開きます。
one.newrelic.com > All capabilities > Service levels、SLI を選択します。
SLIの詳細を2つの主な目的に使用します。
- SLO分析のために。どの時間帯でSLOの目標が達成できなかったかを確認する。
- SLI/SLOの設定や微調整に。New Relic が SLO 値をどのように算出したかをご覧ください。
SLIカードには以下のチャートが含まれています。
良い反応と悪い反応
これらは、サービスレベルを分析するための 重要な概念です 。
- 有効なリクエストとは、SLIにとって意味のあるものとしてカウントしたいリクエストのことです。
- 良い反応とは、良い体験を提供すると考えられる反応のことです(例えば、サービスが2秒以内に反応し、エンドユーザーに良いナビゲーション体験を提供した場合など)。
- バッドレスポンスとは、悪い体験を提供すると考えられるレスポンスのことです(サービスがサーバーエラーで応答し、ユーザーのフローを中断させたような)。
このグラフは、お客様のサービスが受け取った有効なリクエストの総数を、良いものと悪いものに分けて表示しています。
このグラフは、お客様のサービスの実際のスループットを示しており、スループットの増加と悪い反応の間に相関関係があるかどうかを確認するのに利用できます。
SLI達成度の推移(%)
これは、時間の経過とともに、良いと思われる応答の割合を示すものです。このラインは100%に近い値を示し、ほとんどのリクエストが正常に処理されたことを意味します。
期間中のコンプライアンス
これは、SLO遵守期間中に測定された、総イベント(リクエスト)に対する良好なイベント(レスポンス)の比率です。100%に近ければ近いほど、その期間中にSLOの目標を達成していることになります。この割合がSLOの目標値を下回ると、グラフが赤に変わります。信頼性にもっと力を入れる必要があります。
誤差予算の残額(Requests)
残りのエラーバジェットは、SLO期間中に、目的を損なうことなく、どのくらいの割合のリクエストがまだバッドレスポンスになる可能性があるかを示しています。したがって、許容される不良反応の総量は、リクエストのスループットによって変わります。
エラーバジェットは、SLOの別の読み方です。これは、SLOの期間中に、目的を損なうことなく、どのくらいの割合のリクエストに悪い反応があるかを示すものです。
許容される不良反応の総量はリクエストのスループットによって変わるため、New Relic ではエラーバジェットの残りの割合を表示しています。
- 残りのエラーバジェットが25%以上であれば、グリーンが表示され、SLOは良好です。
- エラー バジェットが 25% を下回ると、黄色に変わります。これは、その期間の予算全体を使い果たしそうになっていることを意味します。新しい展開と変更にはより注意を払い、信頼性に関する作業を計画することをお勧めします。
- エラー予算が完全に使われると、赤で表示されます。
SLI達成度の経年変化とSLO目標値(%)
最後のグラフは、(SLI attainment over time)[#sli-over-time]とSLO目標値の2つの時系列を示しています。SLIの値がSLOの目標値を下回っている場合、そのサービスはSLOに達していないことになります。このチャートを使って、どの時間帯にSLO目標を達成できなかったのかを知ることができます。
ダッシュボードでの SLI 達成のグラフ化
以下のクエリを使用して、カスタムダッシュボードにSLI達成度の時系列をチャート表示することができます。
FROM Metric SELECT clamp_max((count(newrelic.sli.valid) - count(newrelic.sli.bad)) / count(newrelic.sli.valid) * 100, 100) AS 'SLI attainment' WHERE sli.id = '<sli.id>' UNTIL 2 MINUTES AGO TIMESERIES AUTO
ここで、 sli.id
はSLI識別子です。このようなグラフをダッシュボードに追加する最も簡単な方法は、 [詳細]ビューにある[ダッシュボードに追加]オプションを使用することです。
また、SLI idとSLI attainmentのクエリは、Nerdgraph APIを使って以下のクエリで見つけることができます。
{ actor { entity(guid: "{entityGuid}") { serviceLevel { indicators { name id resultQueries { indicator { nrql } } } } } }}
SLIに関連付けられているエンティティのentityGuid
を使用します。クエリ結果で、 serviceLevel.indicators.id
フィールドにSLIIDが表示されます。
SLO 違反の診断
SLO 違反の診断に役立つように、次のことができます。
悪い出来事をグループ化する
one.newrelic.com > All capabilities > Service levels、SLI を選択します。
特定の属性 (アカウント、クライアント ID、リクエスト元など) を選択し、それが SLO に特に悪影響を与えるかどうかを検出できます。これらの有害な価値観を「批判者」と呼びます。
たとえば、トランザクションデータの場合、 name
で試行およびファセットして、サービスのトランザクションのいずれかが他のトランザクションよりも多くの失敗した結果を返しているかどうかを確認します。どのクライアントが最も多くの失敗した結果を得ているかを知るには、 request.uri
でファセットしてみてください。
別の例として、ブラウザのPageViewTiming
イベントをdeviceType
、 userAgentName
、 userAgentOS
、 countryCode
などでファセットしてみることができます。
一人またはごく少数の違反者がSLOのコンプライアンスを本当に悪化させていることを察知した場合、いくつかの行動を取ることができます。
- まず、問題のトラブルシューティングを行い、減点対象者がSLOを満たすように作業を計画する。
- また、SLOターゲットをより現実的な値に一時的に調整し、信頼性を向上させるための作業を計画することも可能です。
しかし、もしその減点対象が本当に例外で、サービスのパフォーマンスや信頼性に対する一般的な期待に容易に合致しないのであれば、その場合のために専用のSLOを用意することを検討してください。このような手順をお勧めします。
- まず、元のSLIクエリで
WHERE
句を使用して、中傷者(たとえば、WHERE countryCode != 'US'
)を除外します。 - 次に、デトラクターのケース(たとえば、
WHERE countryCode = 'US'
)のみを考慮したクエリでWHERE
句を使用して新しいSLIを作成し、より現実的なSLOターゲットを設定します。
ヒント
良いイベントに基づいて SLI を構成した場合でも、悪いイベント クエリを使用して、存在する可能性のある批判者を見つけることができます。
制限
悪いイベント クエリを計算できないいくつかの例外があります。
- イベント タイプが異なる、適切なイベントで構成された SLI の場合。
- 適切なイベントにフィルターがない、適切なイベントで構成された SLI の場合。
- SUM と COUNT の両方を使用する適切なイベントで構成された SLI の場合。
- 異なる属性を持つ SUM を使用する適切なイベントで構成された SLI の場合。
人間関係マップ
関係マップを使用すると、影響を受けるサービス レベルに関する関係を表示することで、問題がいつどこで始まったかを特定できます。
one.newrelic.com > All capabilities> Service levels > (SLI を選択) > Map。