-
Notifications
You must be signed in to change notification settings - Fork 336
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
cloudwatchlogs_log_group_metric_filter: add support for unit and dimensions #2286
base: main
Are you sure you want to change the base?
cloudwatchlogs_log_group_metric_filter: add support for unit and dimensions #2286
Conversation
Docs Build 📝Thank you for contribution!✨ The docsite for this PR is available for download as an artifact from this run: You can compare to the docs for the File changes:
Click to see the diff comparison.NOTE: only file modifications are shown here. New and deleted files are excluded. diff --git a/home/runner/work/amazon.aws/amazon.aws/docsbuild/base/collections/amazon/aws/cloudwatchlogs_log_group_metric_filter_module.html b/home/runner/work/amazon.aws/amazon.aws/docsbuild/head/collections/amazon/aws/cloudwatchlogs_log_group_metric_filter_module.html
index 710f828..e2bd80b 100644
--- a/home/runner/work/amazon.aws/amazon.aws/docsbuild/base/collections/amazon/aws/cloudwatchlogs_log_group_metric_filter_module.html
+++ b/home/runner/work/amazon.aws/amazon.aws/docsbuild/head/collections/amazon/aws/cloudwatchlogs_log_group_metric_filter_module.html
@@ -279,29 +279,50 @@ see <a class="reference internal" href="#ansible-collections-amazon-aws-cloudwat
<a class="ansibleOptionLink" href="#parameter-metric_transformation/default_value" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">float</span></p>
</div></td>
<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>The value to emit when a filter pattern does not match a log event.</p>
+<p>The <em>default_value</em> and <em>dimensions</em> options are mutually exclusive.</p>
</div></td>
</tr>
<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
+<div class="ansibleOptionAnchor" id="parameter-metric_transformation/dimensions"></div><p class="ansible-option-title" id="ansible-collections-amazon-aws-cloudwatchlogs-log-group-metric-filter-module-parameter-metric-transformation-dimensions"><strong>dimensions</strong></p>
+<a class="ansibleOptionLink" href="#parameter-metric_transformation/dimensions" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">dictionary</span></p>
+<p><em class="ansible-option-versionadded">added in amazon.aws 8.3.0</em></p>
+</div></td>
+<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>A dimension is a name/value pair that is a part of the identity of a metric.</p>
+<p>You can assign up to 3 dimensions to a metric.</p>
+<p>Dimensions are only supported for JSON or space-delimited metric filters.</p>
+<p>The <em>default_value</em> and <em>dimensions</em> options are mutually exclusive.</p>
+</div></td>
+</tr>
+<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-metric_transformation/metric_name"></div><p class="ansible-option-title" id="ansible-collections-amazon-aws-cloudwatchlogs-log-group-metric-filter-module-parameter-metric-transformation-metric-name"><strong>metric_name</strong></p>
<a class="ansibleOptionLink" href="#parameter-metric_transformation/metric_name" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>The name of the cloudWatch metric.</p>
</div></td>
</tr>
-<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
+<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-metric_transformation/metric_namespace"></div><p class="ansible-option-title" id="ansible-collections-amazon-aws-cloudwatchlogs-log-group-metric-filter-module-parameter-metric-transformation-metric-namespace"><strong>metric_namespace</strong></p>
<a class="ansibleOptionLink" href="#parameter-metric_transformation/metric_namespace" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>The namespace of the cloudWatch metric.</p>
</div></td>
</tr>
-<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
+<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-metric_transformation/metric_value"></div><p class="ansible-option-title" id="ansible-collections-amazon-aws-cloudwatchlogs-log-group-metric-filter-module-parameter-metric-transformation-metric-value"><strong>metric_value</strong></p>
<a class="ansibleOptionLink" href="#parameter-metric_transformation/metric_value" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>The value to publish to the cloudWatch metric when a filter pattern matches a log event.</p>
</div></td>
</tr>
+<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
+<div class="ansibleOptionAnchor" id="parameter-metric_transformation/unit"></div><p class="ansible-option-title" id="ansible-collections-amazon-aws-cloudwatchlogs-log-group-metric-filter-module-parameter-metric-transformation-unit"><strong>unit</strong></p>
+<a class="ansibleOptionLink" href="#parameter-metric_transformation/unit" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
+<p><em class="ansible-option-versionadded">added in amazon.aws 8.3.0</em></p>
+</div></td>
+<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>The unit of the value.</p>
+<p>The various options are available `here <<a class="reference external" href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html">https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html</a>>`.</p>
+</div></td>
+</tr>
<tr class="row-odd"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-profile"></div>
<div class="ansibleOptionAnchor" id="parameter-aws_profile"></div><p class="ansible-option-title" id="ansible-collections-amazon-aws-cloudwatchlogs-log-group-metric-filter-module-parameter-profile"><span id="ansible-collections-amazon-aws-cloudwatchlogs-log-group-metric-filter-module-parameter-aws-profile"></span><strong>profile</strong></p>
@@ -414,12 +435,26 @@ see <a class="reference internal" href="#ansible-collections-amazon-aws-cloudwat
<span class="w"> </span><span class="nt">metric_name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">box_free_space</span>
<span class="w"> </span><span class="nt">metric_namespace</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">fluentd_metrics</span>
<span class="w"> </span><span class="nt">metric_value</span><span class="p">:</span><span class="w"> </span><span class="s">"$.value"</span>
+<span class="w"> </span><span class="nt">unit</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">Bytes</span>
<span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">delete metric filter on log group /fluentd/testcase</span>
<span class="w"> </span><span class="nt">amazon.aws.cloudwatchlogs_log_group_metric_filter</span><span class="p">:</span>
<span class="w"> </span><span class="nt">log_group_name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">/fluentd/testcase</span>
<span class="w"> </span><span class="nt">filter_name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">BoxFreeStorage</span>
<span class="w"> </span><span class="nt">state</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">absent</span>
+
+<span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">set metric filter on log group /fluentd/testcase with dimensions</span>
+<span class="w"> </span><span class="nt">amazon.aws.cloudwatchlogs_log_group_metric_filter</span><span class="p">:</span>
+<span class="w"> </span><span class="nt">log_group_name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">/fluentd/testcase</span>
+<span class="w"> </span><span class="nt">filter_name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">BoxFreeStorage</span>
+<span class="w"> </span><span class="nt">filter_pattern</span><span class="p">:</span><span class="w"> </span><span class="s">'{($.value</span><span class="nv"> </span><span class="s">=</span><span class="nv"> </span><span class="s">*)</span><span class="nv"> </span><span class="s">&&</span><span class="nv"> </span><span class="s">($.hostname</span><span class="nv"> </span><span class="s">=</span><span class="nv"> </span><span class="s">*)}'</span>
+<span class="w"> </span><span class="nt">state</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">present</span>
+<span class="w"> </span><span class="nt">metric_transformation</span><span class="p">:</span>
+<span class="w"> </span><span class="nt">metric_name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">box_free_space</span>
+<span class="w"> </span><span class="nt">metric_namespace</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">fluentd_metrics</span>
+<span class="w"> </span><span class="nt">metric_value</span><span class="p">:</span><span class="w"> </span><span class="s">"$.value"</span>
+<span class="w"> </span><span class="nt">dimensions</span><span class="p">:</span>
+<span class="w"> </span><span class="nt">hostname</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">$.hostname</span>
</pre></div>
</div>
</section>
@@ -439,7 +474,7 @@ see <a class="reference internal" href="#ansible-collections-amazon-aws-cloudwat
</div></td>
<td><div class="ansible-option-cell"><p>Return the origin response value.</p>
<p class="ansible-option-line"><strong class="ansible-option-returned-bold">Returned:</strong> success</p>
-<p class="ansible-option-line ansible-option-sample"><strong class="ansible-option-sample-bold">Sample:</strong> <code class="ansible-option-sample docutils literal notranslate"><span class="pre">[{"default_value":</span> <span class="pre">3.1415,</span> <span class="pre">"metric_name":</span> <span class="pre">"box_free_space",</span> <span class="pre">"metric_namespace":</span> <span class="pre">"made_with_ansible",</span> <span class="pre">"metric_value":</span> <span class="pre">"$.value"}]</span></code></p>
+<p class="ansible-option-line ansible-option-sample"><strong class="ansible-option-sample-bold">Sample:</strong> <code class="ansible-option-sample docutils literal notranslate"><span class="pre">[{"default_value":</span> <span class="pre">3.1415,</span> <span class="pre">"dimensions":</span> <span class="pre">{"hostname":</span> <span class="pre">"$.hostname"},</span> <span class="pre">"metric_name":</span> <span class="pre">"box_free_space",</span> <span class="pre">"metric_namespace":</span> <span class="pre">"made_with_ansible",</span> <span class="pre">"metric_value":</span> <span class="pre">"$.value",</span> <span class="pre">"unit":</span> <span class="pre">"Bytes"}]</span></code></p>
</div></td>
</tr>
</tbody>
|
Build succeeded. ✔️ ansible-galaxy-importer SUCCESS in 3m 49s |
Build succeeded. ✔️ ansible-galaxy-importer SUCCESS in 3m 29s |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for working on this PR. Please update the Return
block of the module documentation with the new parameters.
Build succeeded. ✔️ ansible-galaxy-importer SUCCESS in 4m 26s |
Build succeeded. ✔️ ansible-galaxy-importer SUCCESS in 4m 41s |
Build succeeded. ✔️ ansible-galaxy-importer SUCCESS in 5m 24s |
@jmisset-cb Can you please rebase this branch? |
abc75bc
to
8f52905
Compare
@alinabuzachis Done! |
Build succeeded. ✔️ ansible-galaxy-importer SUCCESS in 4m 11s |
SUMMARY
This PR adds support for the options
unit
anddimensions
in thecloudwatchlogs_log_group_metric_filter
module.This enables configuring
unit
anddimensions
in Cloudwatch Logs Metricfilters using ansible, which was previously not possible.The addition is pretty straigthforward since both
unit
anddimensions
are part of themetric_transformation
parameter.dimensions
anddefault_value
are mutually exclusive, however:mutually_exclusive
was not possible. Instead a custom check was added to the module that throws an error when both parameters are present.An integration test has been added for this case, as well as for configuring metric_filters with units and/or dimensions.
The function metricTransformationHandler has been rewritten slightly due to the addition of the two extra optional parameters, to make it a bit more readable.
Happy to get your feedback!
ISSUE TYPE
COMPONENT NAME
cloudwatchlogs_log_group_metric_filter
ADDITIONAL INFORMATION