Skip to content

feat: add aws_synthetics_canary_run table - #2768

Open
leongzhiyong wants to merge 1 commit into
turbot:mainfrom
leongzhiyong:feat/add-cloudwatch-synthetics-canary-run-table
Open

feat: add aws_synthetics_canary_run table#2768
leongzhiyong wants to merge 1 commit into
turbot:mainfrom
leongzhiyong:feat/add-cloudwatch-synthetics-canary-run-table

Conversation

@leongzhiyong

Copy link
Copy Markdown
Contributor

Integration test logs

Not applicable due to lack of Terraform support for Synthetics canary runs.

Example query results

Results
> select * from aws_synthetics_canary_run where name = 'canary-01'
+--------------------------------------------------------------------------+--------------+----------------+--------------------------------------+-----------+---------------+------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+------------+----------+-----------+-----------+--------------+--------------------+----------------------------------------------------------------------+----------------------------------------------------------------------+
| artifact_s3_location                                                     | browser_type | dry_run_config | id                                   | name      | retry_attempt | scheduled_run_id | status                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | timeline                                                                                                             | dry_run_id | run_type | partition | region    | account_id   | sp_connection_name | sp_ctx                                                               | _ctx                                                                 |
+--------------------------------------------------------------------------+--------------+----------------+--------------------------------------+-----------+---------------+------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+------------+----------+-----------+-----------+--------------+--------------------+----------------------------------------------------------------------+----------------------------------------------------------------------+
| cw-syn-results/canary/canary-01-bee-445d0a5b46ba/2026/06/04/02/40-45-810 |              | <null>         | abe5416b-a9db-4fbc-8bdc-3b5b71ce7b5c | canary-01 | <null>        | <null>           | {"State":"FAILED","StateReason":"Error: Step 3 - base_ssl_certificate_check_example failed during execution\n at APIStepOrchestrator.executeSteps (/opt/lib/orchestration/APIStepOrchestrator.js:69:19)\n at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n at async CheckExecutor.handler (/opt/nodejs/node_modules/@amzn/synthetics-blueprints-common-nodejs/dist/lib/monitoring/CheckExecutor.js:60:13)\n at async Module.handler (/opt/blueprint.js:24:9)\n at async Runtime.handler (file:///opt/index.mjs:38:13). Additional error: Step 3: base_ssl_certificate_check_example failed with 1 of 6 assertions failed: Certificate issuer O 'SSL Corporation' does not contains 'DigiCert'\n at /opt/lib/orchestration/APIStepOrchestrator.js:145:27\n at async SyntheticsCore.executeStepAndRecordRequests (/opt/nodejs/node_modules/@aws/synthetics-core/dist/lib/synthetics-core.js:687:33)\n at async SyntheticsCore.executeStep (/opt/nodejs/node_modules/@aws/synthetics-core/dist/lib/synthetics-core.js:670:16)\n at  | {"Completed":"2026-06-04T02:40:57.638Z","MetricTimestampForRunAndRetries":null,"Started":"2026-06-04T02:40:53.934Z"} | <null>     | <null>   | aws       | us-east-1 | <omitted>    | steampipe          | {"connection_name":"steampipe","steampipe":{"sdk_version":"5.14.0"}} | {"connection_name":"steampipe","steampipe":{"sdk_version":"5.14.0"}} |
|                                                                          |              |                |                                      |           |               |                  | async APIStepOrchestrator.executeNonHttpStep (/opt/lib/orchestration/APIStepOrchestrator.js:130:13)\n at async APIStepOrchestrator.executeSteps (/opt/lib/orchestration/APIStepOrchestrator.js:45:23)\n at async CheckExecutor.handler (/opt/nodejs/node_modules/@amzn/synthetics-blueprints-common-nodejs/dist/lib/monitoring/CheckExecutor.js:60:13)\n at async Module.handler (/opt/blueprint.js:24:9)\n at async Runtime.handler (file:///opt/index.mjs:38:13)","StateReasonCode":"CANARY_FAILURE","TestResult":"FAILED"}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |                                                                                                                      |            |          |           |           |              |                    |                                                                      |                                                                      |
+--------------------------------------------------------------------------+--------------+----------------+--------------------------------------+-----------+---------------+------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+------------+----------+-----------+-----------+--------------+--------------------+----------------------------------------------------------------------+----------------------------------------------------------------------+

select * from aws_synthetics_canary_run where name = 'canary-01' and run_type = 'DRY_RUN'
+---------------------------------------------------------------------------------+--------------+-----------------------------------------------------+--------------------------------------+-----------+---------------+------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+------------+----------+-----------+-----------+--------------+--------------------+----------------------------------------------------------------------+----------------------------------------------------------------------+
| artifact_s3_location                                                            | browser_type | dry_run_config                                      | id                                   | name      | retry_attempt | scheduled_run_id | status                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | timeline                                                                                                             | dry_run_id | run_type | partition | region    | account_id   | sp_connection_name | sp_ctx                                                               | _ctx                                                                 |
+---------------------------------------------------------------------------------+--------------+-----------------------------------------------------+--------------------------------------+-----------+---------------+------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+------------+----------+-----------+-----------+--------------+--------------------+----------------------------------------------------------------------+----------------------------------------------------------------------+
| cw-syn-results/canary/canary-01-bee-445d0a5b46ba/2026/06/04/02/41-38-348-dryrun |              | {"DryRunId":"ed55fd40-ddf6-4283-a695-4e539909625b"} | 10ef03f0-012b-431d-83d6-44db05d11aed | canary-01 | <null>        | <null>           | {"State":"FAILED","StateReason":"Error: Step 3 - base_ssl_certificate_check_example failed during execution\n at APIStepOrchestrator.executeSteps (/opt/lib/orchestration/APIStepOrchestrator.js:69:19)\n at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n at async CheckExecutor.handler (/opt/nodejs/node_modules/@amzn/synthetics-blueprints-common-nodejs/dist/lib/monitoring/CheckExecutor.js:60:13)\n at async Module.handler (/opt/blueprint.js:24:9)\n at async Runtime.handler (file:///opt/index.mjs:38:13). Additional error: Step 3: base_ssl_certificate_check_example failed with 1 of 6 assertions failed: Certificate issuer O 'SSL Corporation' does not contains 'DigiCert'\n at /opt/lib/orchestration/APIStepOrchestrator.js:145:27\n at async SyntheticsCore.executeStepAndRecordRequests (/opt/nodejs/node_modules/@aws/synthetics-core/dist/lib/synthetics-core.js:687:33)\n at async SyntheticsCore.executeStep (/opt/nodejs/node_modules/@aws/synthetics-core/dist/lib/synthetics-core.js:670:16)\n at  | {"Completed":"2026-06-04T02:41:48.323Z","MetricTimestampForRunAndRetries":null,"Started":"2026-06-04T02:41:44.894Z"} | <null>     | DRY_RUN  | aws       | us-east-1 | <omitted>    | steampipe          | {"connection_name":"steampipe","steampipe":{"sdk_version":"5.14.0"}} | {"connection_name":"steampipe","steampipe":{"sdk_version":"5.14.0"}} |
|                                                                                 |              |                                                     |                                      |           |               |                  | async APIStepOrchestrator.executeNonHttpStep (/opt/lib/orchestration/APIStepOrchestrator.js:130:13)\n at async APIStepOrchestrator.executeSteps (/opt/lib/orchestration/APIStepOrchestrator.js:45:23)\n at async CheckExecutor.handler (/opt/nodejs/node_modules/@amzn/synthetics-blueprints-common-nodejs/dist/lib/monitoring/CheckExecutor.js:60:13)\n at async Module.handler (/opt/blueprint.js:24:9)\n at async Runtime.handler (file:///opt/index.mjs:38:13)","StateReasonCode":"CANARY_FAILURE","TestResult":"FAILED"}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |                                                                                                                      |            |          |           |           |              |                    |                                                                      |                                                                      |
+---------------------------------------------------------------------------------+--------------+-----------------------------------------------------+--------------------------------------+-----------+---------------+------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+------------+----------+-----------+-----------+--------------+--------------------+----------------------------------------------------------------------+----------------------------------------------------------------------+

Closes #2767.

@leongzhiyong
leongzhiyong force-pushed the feat/add-cloudwatch-synthetics-canary-run-table branch from cdea5d2 to 911a586 Compare June 4, 2026 03:37
@cbruno10

cbruno10 commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

Hey @leongzhiyong, thanks for the PR! Overall, the table looks to be in good shape. A few suggestions before we merge:

  • Can you please add the standard title column? The sibling aws_synthetics_canary table has both and is a good reference. Since every run shares the canary name, I'd suggest title transform from Id.
  • Small typo in the table description: Synthentics should be Synthetics.
  • In the docs, can you please note that name is a required qualifier (you can't list runs without specifying a canary), and add an example that uses the run_type / dry_run_id quals since those are a nice part of this table? Also, the front-matter description is wrapped across two lines, so please put it on a single line, and the example queries should use 2-space indentation to match our other table docs.
  • Do we need the transforms for dry_run_id and run_type? I think the default transformation is usually able to convert those property names to column names correctly.
  • Minor note, but the qual reads can use d.EqualsQualString("...") instead of d.EqualsQuals["..."].GetStringValue() to simplify the nil/empty checks.

Thanks again!

@leongzhiyong
leongzhiyong force-pushed the feat/add-cloudwatch-synthetics-canary-run-table branch 2 times, most recently from 582f19d to ba8b98b Compare June 23, 2026 08:41
@leongzhiyong

Copy link
Copy Markdown
Contributor Author

Hi there @cbruno10, thanks for the review!

  • Added the title column. I did notice you added the title and akas columns to aws_synthetics_canary for me, thanks for that! I am left wondering what these standard columns are though, as I didn't seem to spot any documentation that spoke of these and what they mean.
  • Typo corrected.
  • Updated the docs as suggested. It also occurred to me that highlighting the joint use of dry_run_id and run_type might be helpful to users unfamiliar with the underlying AWS API.
  • Yes, I believe the transforms are necessary because they're not part of the response body schema.
  • Thanks, I think I did spot d.EqualsQualString("...") later on in some other parts of the codebase. I'm guessing the less preferred form is legacy?

@cbruno10 cbruno10 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@leongzhiyong - Sorry for the delay in follow-up review. I've added some additional minor comments, and for your question on standard columns (in particular for cloud plugin tables), please see https://steampipe.io/docs/develop/table-docs-standards.

Also, after making the changes, can you please quickly run through at least the postgres example queries you have and make sure they all run and return the correct results? Thanks!

Comment thread aws/table_aws_synthetics_canary_run.go Outdated
Comment thread aws/table_aws_synthetics_canary_run.go Outdated
Comment thread docs/tables/aws_synthetics_canary_run.md
Comment thread docs/tables/aws_synthetics_canary_run.md Outdated
Comment thread docs/tables/aws_synthetics_canary_run.md
Comment thread docs/tables/aws_synthetics_canary_run.md Outdated
@leongzhiyong
leongzhiyong force-pushed the feat/add-cloudwatch-synthetics-canary-run-table branch 2 times, most recently from 6ec0af6 to c2a25ed Compare August 4, 2026 08:58
@leongzhiyong

Copy link
Copy Markdown
Contributor Author

Made the latest set of requested changes!

@cbruno10 cbruno10 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@leongzhiyong Thanks for making the earlier changes! I've left a few more minor suggestions, can you please have a look?

Comment thread aws/table_aws_synthetics_canary_run.go Outdated
Comment thread aws/table_aws_synthetics_canary_run.go Outdated
@leongzhiyong
leongzhiyong force-pushed the feat/add-cloudwatch-synthetics-canary-run-table branch from c2a25ed to 1d446c0 Compare August 12, 2026 01:49
@leongzhiyong

Copy link
Copy Markdown
Contributor Author

All done 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add table aws_synthetics_canary_run

2 participants