<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Armory Docs – AWS CloudWatch Integration Plugin</title><link>/plugins/aws-cloudwatch/</link><description>Recent content in AWS CloudWatch Integration Plugin on Armory Docs</description><generator>Hugo -- gohugo.io</generator><atom:link href="/plugins/aws-cloudwatch/index.xml" rel="self" type="application/rss+xml"/><item><title>Plugins: AWS CloudWatch Integration Plugin Overview</title><link>/plugins/aws-cloudwatch/overview/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/plugins/aws-cloudwatch/overview/</guid><description>
&lt;h2 id="what-the-aws-cloudwatch-integration-plugin-does">What the AWS CloudWatch Integration plugin does&lt;/h2>
&lt;p>The AWS CloudWatch Integration Plugin for Spinnaker enables using AWS CloudWatch as a metrics provider for your canary deployments. For example, you can have an analysis stage that compares CPU utilization across two versions of a service using AWS CloudWatch metrics and then a judgment that determines if the deployment proceeds or rolls back based on the metrics.&lt;/p>
&lt;p>See &lt;a href="https://spinnaker.io/docs/guides/user/canary/canary-overview/">Canary Overview&lt;/a> for more information on using canary analysis with Spinnaker.&lt;/p>
&lt;h2 id="installation-paths">Installation paths&lt;/h2>
&lt;div class="td-card-group card-group p-0 mb-4">
&lt;div class="td-card card border me-4">
&lt;div class="card-header">
Spinnaker
&lt;/div>
&lt;div class="card-body">
&lt;p class="card-text">
&lt;ol>
&lt;li>Make sure you have enabled canary deployments (the Kayenta service) in your Spinnaker instance.&lt;/li>
&lt;li>Enable AWS CloudWatch as a metrics provider.&lt;/li>
&lt;li>Install the plugin in Spinnaker using the Spinnaker Operator or Halyard.&lt;/li>
&lt;li>Use AWS CloudWatch in your pipeline.&lt;/li>
&lt;/ol>
&lt;p>&lt;a href="/plugins/aws-cloudwatch/spinnaker/">Instructions&lt;/a>&lt;/p>
&lt;/p>
&lt;/div>
&lt;/div>
&lt;div class="td-card card border me-4">
&lt;div class="card-header">
Armory CD
&lt;/div>
&lt;div class="card-body">
&lt;p class="card-text">
&lt;p>Armory CD includes the AWS Cloudwatch Integration Plugin. You do not have to install it.&lt;/p>
&lt;ol>
&lt;li>Make sure you have enabled canary deployments (the Kayenta service) in your Armory CD instance.&lt;/li>
&lt;li>Enable AWS CloudWatch as a metrics provider.&lt;/li>
&lt;li>Use AWS CloudWatch in your pipeline.&lt;/li>
&lt;/ol>
&lt;p>&lt;a href="/plugins/aws-cloudwatch/armory-cd/">Instructions&lt;/a>&lt;/p>
&lt;/p>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;h2 id="spinnaker-compatibility-matrix">Spinnaker compatibility matrix&lt;/h2>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Spinnaker Version&lt;/th>
&lt;th>AWS CloudWatch Integration Plugin Version&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>1.33.x&lt;/td>
&lt;td>0.1.0&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h2 id="release-notes">Release notes&lt;/h2>
&lt;ul>
&lt;li>0.1.0: Initial release&lt;/li>
&lt;/ul></description></item><item><title>Plugins: Enable and Use the AWS CloudWatch Integration Plugin in Armory CD</title><link>/plugins/aws-cloudwatch/armory-cd/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/plugins/aws-cloudwatch/armory-cd/</guid><description>
&lt;h2 id="before-you-begin">Before you begin&lt;/h2>
&lt;p>Before you can start using canary deployments, you need to enable Kayenta, the Spinnaker&lt;sup>TM&lt;/sup> service for canary deployments. For more information, see the &lt;a href="/continuous-deployment/armory-admin/kayenta-configure/"}>Configure Automated Canary Deployments in Spinnaker&lt;/a> guide.&lt;/p>
&lt;h2 id="enable-aws-cloudwatch-as-a-metrics-store">Enable AWS CloudWatch as a metrics store&lt;/h2>
&lt;p>To enable &lt;a href="https://aws.amazon.com/cloudwatch/">AWS CloudWatch&lt;/a>, update the AWS configuration entry in your &lt;code>kayenta-local.yml&lt;/code> file. Make sure &lt;code>METRICS_STORE&lt;/code> is listed under &lt;code>supportedTypes&lt;/code>. Add the &lt;code>cloudwatch&lt;/code> entry with &lt;code>enabled: true&lt;/code>.&lt;/p>
&lt;p>This example uses S3 as the object store and CloudWatch as the metrics store.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kayenta&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">aws&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">accounts&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#ff79c6">name&lt;/span>: monitoring
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">bucket&lt;/span>: &amp;lt;your-s3-bucket&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">region&lt;/span>: &amp;lt;your-region&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># Kayenta can assume a role when connecting to Cloudwatch using the iamRole configs&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># iamRoleArn: &amp;lt;your-role-ARN&amp;gt; # For example arn:aws:iam::042225624470:role/theRole&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># iamRoleExternalId: Optional. For example 12345&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># iamRoleArnTarget: &amp;lt;your-role-ARN-target&amp;gt; # For example arn:aws:iam::042225624470:role/targetcloudwatchaccount&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># iamRoleExternalIdTarget: &amp;lt;your-ExternalID&amp;gt; # Optional. For example 84475&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">rootFolder&lt;/span>: kayenta
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">roleName&lt;/span>: default
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">supportedTypes&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - OBJECT_STORE
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - CONFIGURATION_STORE
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - METRICS_STORE
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">cloudwatch&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">s3&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;h2 id="use-aws-cloudwatch">Use AWS CloudWatch&lt;/h2>
&lt;h3 id="create-a-canary-config">Create a canary config&lt;/h3>
&lt;p>In the UI, you need to create a new canary config for the metrics you are interested in.&lt;/p>
&lt;figure>
&lt;img src="/plugins/aws-cloudwatch/files/canary_config_cloudwatch.png" width="80%" height="80%"/>
&lt;/figure>
&lt;p>Add your Cloudwatch MetricStat JSON in the &lt;strong>Template&lt;/strong> field.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;Metric&amp;#34;&lt;/span>: {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;Namespace&amp;#34;&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;kayenta&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;MetricName&amp;#34;&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;integration.test.cpu.value&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;Dimensions&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;Name&amp;#34;&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;scope&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;Value&amp;#34;&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;myapp-prod-canary-2&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> },
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;Name&amp;#34;&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;namespace&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;Value&amp;#34;&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;prod-namespace-2&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> },
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;Period&amp;#34;&lt;/span>: &lt;span style="color:#bd93f9">300&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;Stat&amp;#34;&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;Average&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;Unit&amp;#34;&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;None&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;figure>
&lt;img src="/plugins/aws-cloudwatch/files/canary_config_cloudwatch_query.png" width="80%" height="80%"/>
&lt;/figure>
&lt;h3 id="update-pipeline-configs">Update pipeline configs&lt;/h3>
&lt;p>In your canary stage, set up the canary config you just created. Then use the app values from AWS CloudWatch to fill in the &lt;strong>Baseline + Canary Pair&lt;/strong> and &lt;strong>MetricScope&lt;/strong> fields.&lt;/p>
&lt;figure>
&lt;img src="/plugins/aws-cloudwatch/files/canary_stage_cloudwatch.png" width="80%" height="80%"/>
&lt;/figure></description></item><item><title>Plugins: Install and Use the AWS CloudWatch Integration Plugin in Spinnaker</title><link>/plugins/aws-cloudwatch/spinnaker/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/plugins/aws-cloudwatch/spinnaker/</guid><description>
&lt;h2 id="before-you-begin">Before you begin&lt;/h2>
&lt;p>You should enable canary analysis support and be familiar with using canary analysis in Spinnaker. See the following Spinnaker Docs guides:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://spinnaker.io/docs/setup/other_config/canary/">Set up Canary Analysis Support&lt;/a> (Halyard)&lt;/li>
&lt;li>&lt;a href="https://spinnaker.io/docs/guides/user/canary/canary-overview/">Canary Overview&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://spinnaker.io/docs/guides/user/canary/config/canary-config/">Configure a canary&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://spinnaker.io/docs/guides/user/canary/stage/">Add a canary stage to a pipeline&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="enable-aws-cloudwatch-as-a-metrics-store">Enable AWS CloudWatch as a metrics store&lt;/h2>
&lt;p>To enable &lt;a href="https://aws.amazon.com/cloudwatch/">AWS CloudWatch&lt;/a>, update the AWS configuration entry in your &lt;code>kayenta-local.yml&lt;/code> file. Make sure &lt;code>METRICS_STORE&lt;/code> is listed under &lt;code>supportedTypes&lt;/code>. Add the &lt;code>cloudwatch&lt;/code> entry with &lt;code>enabled: true&lt;/code>.&lt;/p>
&lt;p>This example uses S3 as the object store and CloudWatch as the metrics store.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kayenta&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">aws&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">accounts&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#ff79c6">name&lt;/span>: monitoring
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">bucket&lt;/span>: &amp;lt;your-s3-bucket&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">region&lt;/span>: &amp;lt;your-region&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># Kayenta can assume a role when connecting to Cloudwatch using the iamRole configs&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># iamRoleArn: &amp;lt;your-role-ARN&amp;gt; # For example arn:aws:iam::042225624470:role/theRole&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># iamRoleExternalId: Optional. For example 12345&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># iamRoleArnTarget: &amp;lt;your-role-ARN-target&amp;gt; # For example arn:aws:iam::042225624470:role/targetcloudwatchaccount&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># iamRoleExternalIdTarget: &amp;lt;your-ExternalID&amp;gt; # Optional. For example 84475&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">rootFolder&lt;/span>: kayenta
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">roleName&lt;/span>: default
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">supportedTypes&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - OBJECT_STORE
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - CONFIGURATION_STORE
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - METRICS_STORE
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">cloudwatch&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">s3&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;h2 id="install-the-plugin-in-spinnaker">Install the plugin in Spinnaker&lt;/h2>
&lt;ul class="nav nav-tabs justify-content-end" id="tabs-1" role="tablist">
&lt;li class="nav-item">
&lt;button class="nav-link disabled"
id="tabs-01-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-01-00" role="tab"
aria-controls="tabs-01-00" aria-selected="false">
&lt;strong>Install Method&lt;/strong>:
&lt;/button>
&lt;/li>&lt;li class="nav-item">
&lt;button class="nav-link active"
id="tabs-01-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-01-01" role="tab"
aria-controls="tabs-01-01" aria-selected="true">
Spinnaker Operator
&lt;/button>
&lt;/li>&lt;li class="nav-item">
&lt;button class="nav-link"
id="tabs-01-02-tab" data-bs-toggle="tab" data-bs-target="#tabs-01-02" role="tab"
aria-controls="tabs-01-02" aria-selected="false">
Spinnaker Halyard
&lt;/button>
&lt;/li>
&lt;/ul>
&lt;div class="tab-content" id="tabs-1-content">
&lt;div class="tab-body tab-pane fade"
id="tabs-01-00" role="tabpanel" aria-labelled-by="tabs-01-00-tab" tabindex="1">
&lt;/div>
&lt;div class="tab-body tab-pane fade show active"
id="tabs-01-01" role="tabpanel" aria-labelled-by="tabs-01-01-tab" tabindex="1">
&lt;p>Add a Kustomize patch with the following contents:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">kayenta&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnaker&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">extensibility&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">plugins&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">Armory.CloudWatch&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">version&lt;/span>: &amp;lt;version&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">repositories&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">cloudwatch&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">url&lt;/span>: https://raw.githubusercontent.com/armory-plugins/pluginRepository/master/repositories.json
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">kayenta&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">aws&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">accounts&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">cloudwatch&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ol>
&lt;li>Replace &lt;code>&amp;lt;version&amp;gt;&lt;/code> with the plugin version that&amp;rsquo;s compatible with your Spinnaker version.&lt;/li>
&lt;li>Add the patch to the &lt;code>patchesStrategicMerge&lt;/code> section of your kustomization file.&lt;/li>
&lt;li>Apply your update.&lt;/li>
&lt;/ol>
&lt;details>&lt;summary>Show an example with CloudWatch Configured&lt;/summary>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">kayenta&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnaker&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">extensibility&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">plugins&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">Armory.CloudWatch&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">version&lt;/span>: &lt;span style="color:#bd93f9">0.1.0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">repositories&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">cloudwatch&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">url&lt;/span>: https://raw.githubusercontent.com/armory-plugins/pluginRepository/master/repositories.json
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">kayenta&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">aws&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">accounts&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#ff79c6">name&lt;/span>: monitoring
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">bucket&lt;/span>: &amp;lt;your-s3-bucket&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">region&lt;/span>: &amp;lt;your-region&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># Kayenta can assume a role when connecting to Cloudwatch using the iamRole configs&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># iamRoleArn: &amp;lt;your-role-ARN&amp;gt; # For example arn:aws:iam::042225624470:role/theRole&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># iamRoleExternalId: Optional. For example 12345&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># iamRoleArnTarget: &amp;lt;your-role-ARN-target&amp;gt; # For example arn:aws:iam::042225624470:role/targetcloudwatchaccount&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># iamRoleExternalIdTarget: &amp;lt;your-ExternalID&amp;gt; # Optional. For example 84475&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">rootFolder&lt;/span>: kayenta
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">roleName&lt;/span>: default
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">supportedTypes&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - OBJECT_STORE
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - CONFIGURATION_STORE
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - METRICS_STORE
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">cloudwatch&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">s3&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/details>&lt;/br>
&lt;p>Alternately, add the plugin configuration in the &lt;code>spec.spinnakerConfig.profiles.kayenta&lt;/code> section of your &lt;code>spinnakerservice.yml&lt;/code> and then apply your update.&lt;/p>
&lt;/div>
&lt;div class="tab-body tab-pane fade"
id="tabs-01-02" role="tabpanel" aria-labelled-by="tabs-01-02-tab" tabindex="1">
&lt;blockquote>
&lt;p>When Halyard adds a plugin to a Spinnaker installation, it adds the plugin repository information to all services, not just the ones the plugin is for. This means that when you restart Spinnaker, each service restarts, downloads the plugin, and checks if an extension exists for that service. Each service restarting is not ideal for large Spinnaker installations due to service restart times. To avoid every Spinnaker service restarting and downloading the plugin, do not add the plugin using Halyard.&lt;/p>
&lt;/blockquote>
&lt;p>The AWS CloudWatch Metrics Plugin extends Kayenta. You should create or update the extended service&amp;rsquo;s local profile in the same directory as the other Halyard configuration files. This is usually &lt;code>~/.hal/default/profiles&lt;/code> on the machine where Halyard is running.&lt;/p>
&lt;p>Add the following to your &lt;code>kayenta-local.yml&lt;/code> file:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spinnaker&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">extensibility&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">plugins&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">Armory.CloudWatch&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">version&lt;/span>: &amp;lt;version&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">repositories&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">cloudwatch&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">url&lt;/span>: https://raw.githubusercontent.com/armory-plugins/pluginRepository/master/repositories.json
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kayenta&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">aws&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">accounts&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">cloudwatch&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ol>
&lt;li>Replace &lt;code>&amp;lt;version&amp;gt;&lt;/code> with the plugin version that&amp;rsquo;s compatible with your Spinnaker version.&lt;/li>
&lt;li>Enable AWS CloudWatch as a metric store.&lt;/li>
&lt;li>&lt;code>hal deploy apply&lt;/code> your update.&lt;/li>
&lt;/ol>
&lt;details>&lt;summary>Show an example with CloudWatch Configured&lt;/summary>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spinnaker&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">extensibility&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">plugins&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">Armory.CloudWatch&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">version&lt;/span>: &lt;span style="color:#bd93f9">0.1.0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">repositories&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">cloudwatch&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">url&lt;/span>: https://raw.githubusercontent.com/armory-plugins/pluginRepository/master/repositories.json
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kayenta&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">aws&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">accounts&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#ff79c6">name&lt;/span>: monitoring
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">bucket&lt;/span>: &amp;lt;your-s3-bucket&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">region&lt;/span>: &amp;lt;your-region&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># Kayenta can assume a role when connecting to Cloudwatch using the iamRole configs&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># iamRoleArn: &amp;lt;your-role-ARN&amp;gt; # For example arn:aws:iam::042225624470:role/theRole&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># iamRoleExternalId: Optional. For example 12345&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># iamRoleArnTarget: &amp;lt;your-role-ARN-target&amp;gt; # For example arn:aws:iam::042225624470:role/targetcloudwatchaccount&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># iamRoleExternalIdTarget: &amp;lt;your-ExternalID&amp;gt; # Optional. For example 84475&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">rootFolder&lt;/span>: kayenta
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">roleName&lt;/span>: default
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">supportedTypes&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - OBJECT_STORE
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - CONFIGURATION_STORE
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - METRICS_STORE
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">cloudwatch&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">s3&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/details>&lt;/br>
&lt;/div>
&lt;/div>
&lt;h2 id="use-aws-cloudwatch">Use AWS CloudWatch&lt;/h2>
&lt;h3 id="create-a-canary-config">Create a canary config&lt;/h3>
&lt;p>In the UI, you need to create a new canary config for the metrics you are interested in.&lt;/p>
&lt;figure>
&lt;img src="/plugins/aws-cloudwatch/files/canary_config_cloudwatch.png" width="80%" height="80%"/>
&lt;/figure>
&lt;p>Add your Cloudwatch MetricStat JSON in the &lt;strong>Template&lt;/strong> field.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;Metric&amp;#34;&lt;/span>: {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;Namespace&amp;#34;&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;kayenta&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;MetricName&amp;#34;&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;integration.test.cpu.value&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;Dimensions&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;Name&amp;#34;&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;scope&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;Value&amp;#34;&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;myapp-prod-canary-2&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> },
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;Name&amp;#34;&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;namespace&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;Value&amp;#34;&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;prod-namespace-2&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> },
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;Period&amp;#34;&lt;/span>: &lt;span style="color:#bd93f9">300&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;Stat&amp;#34;&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;Average&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;Unit&amp;#34;&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;None&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;figure>
&lt;img src="/plugins/aws-cloudwatch/files/canary_config_cloudwatch_query.png" width="80%" height="80%"/>
&lt;/figure>
&lt;h3 id="update-pipeline-configs">Update pipeline configs&lt;/h3>
&lt;p>In your canary stage, set up the canary config you just created. Then use the app values from AWS CloudWatch to fill in the &lt;strong>Baseline + Canary Pair&lt;/strong> and &lt;strong>MetricScope&lt;/strong> fields.&lt;/p>
&lt;figure>
&lt;img src="/plugins/aws-cloudwatch/files/canary_stage_cloudwatch.png" width="80%" height="80%"/>
&lt;/figure></description></item></channel></rss>