Adding more metrics

This commit is contained in:
Bryce Covert
2022-01-04 18:11:52 -08:00
parent 0a65fe56f3
commit 78db8ea4dd
7 changed files with 70 additions and 48 deletions

View File

@@ -7,3 +7,5 @@
:start (statsd/setup! :host "127.0.0.1" :port 8125 :prefix "integreat.app" :tags #{(str "env:" (:dd-env env)) :start (statsd/setup! :host "127.0.0.1" :port 8125 :prefix "integreat.app" :tags #{(str "env:" (:dd-env env))
(str "service:" (:dd-service env))}) (str "service:" (:dd-service env))})
:stop (statsd/shutdown!)) :stop (statsd/shutdown!))

View File

@@ -1,42 +1,73 @@
(ns auto-ap.server (ns auto-ap.server
(:require [auto-ap.handler :refer [app]] (:gen-class)
[auto-ap.ledger :as ledger] (:require auto-ap.background.invoices
[auto-ap.yodlee.core]
[auto-ap.graphql.clients :as gq-clients]
[auto-ap.background.invoices]
[auto-ap.background.requests :as requests] [auto-ap.background.requests :as requests]
[auto-ap.background.sysco :as sysco] [auto-ap.background.sysco :as sysco]
[auto-ap.background.vendor :as vendor] [auto-ap.background.vendor :as vendor]
[auto-ap.background.metrics :as metrics]
[auto-ap.square.core :as square]
[auto-ap.datomic.migrate :as migrate] [auto-ap.datomic.migrate :as migrate]
[auto-ap.import.yodlee :as yodlee] [auto-ap.graphql.clients :as gq-clients]
[auto-ap.import.yodlee2 :as yodlee2] [auto-ap.handler :refer [app]]
[auto-ap.import.intuit :as intuit] [auto-ap.import.intuit :as intuit]
[auto-ap.import.plaid :as plaid] [auto-ap.import.plaid :as plaid]
[nrepl.server :refer [start-server stop-server]] [auto-ap.import.yodlee :as yodlee]
[config.core :refer [env]] [auto-ap.import.yodlee2 :as yodlee2]
[ring.adapter.jetty :refer [run-jetty]] [auto-ap.ledger :as ledger]
[auto-ap.square.core :as square]
[clojure.tools.logging :as log] [clojure.tools.logging :as log]
[unilog.config] [config.core :refer [env]]
[mount.core :as mount]) [mount.core :as mount]
(:gen-class)) [nrepl.server :refer [start-server]]
[ring.adapter.jetty :refer [run-jetty]]
[yang.scheduler :as scheduler]
[com.unbounce.dogstatsd.core :as statsd])
(:import org.eclipse.jetty.server.handler.StatisticsHandler))
(defn add-shutdown-hook! [^Runnable f] (defn add-shutdown-hook! [^Runnable f]
(.addShutdownHook (Runtime/getRuntime) (.addShutdownHook (Runtime/getRuntime)
(Thread. f))) (Thread. f)))
(defn configure-jetty [server]
(let [stats-handler (StatisticsHandler.)
default-handler (.getHandler server)]
(.setHandler stats-handler default-handler)
(.setHandler server stats-handler))
(.setStopAtShutdown server true))
(mount/defstate port :start (Integer/parseInt (or (env :port) "3000"))) (mount/defstate port :start (Integer/parseInt (or (env :port) "3000")))
(mount/defstate jetty (mount/defstate jetty
:start (run-jetty app {:port port :join? false}) :start (run-jetty app {:port port
:join? false
:configurator configure-jetty})
:stop (.stop jetty)) :stop (.stop jetty))
(defn collect-jetty-stats []
(try
(statsd/gauge "requests.active" (.getRequestsActive (.getHandler jetty)))
(statsd/gauge "requests.1xx" (.getResponses1xx (.getHandler jetty)))
(statsd/gauge "requests.2xx" (.getResponses2xx (.getHandler jetty)))
(statsd/gauge "requests.3xx" (.getResponses3xx (.getHandler jetty)))
(statsd/gauge "requests.4xx" (.getResponses4xx (.getHandler jetty)))
(statsd/gauge "requests.5xx" (.getResponses5xx (.getHandler jetty)))
(.statsReset (.getHandler jetty))
(catch Exception e
(log/warn e))))
(mount/defstate jetty-stats
:start (scheduler/every (* 1000 30) (collect-jetty-stats))
:stop (scheduler/stop jetty-stats))
(defn shutdown-mount [] (defn shutdown-mount []
(mount/stop)) (mount/stop))
(defn -main [& args] (defn -main [& args]
(let [without (cond-> [] (let [without (cond-> []
(not (env :run-web? )) (into [#'jetty]) (not (env :run-web? )) (into [#'jetty
#'collect-jetty-stats])
(not (env :run-background?)) (into [#'square/square-loader (not (env :run-background?)) (into [#'square/square-loader
#'vendor/refresh-vendor-usages-worker #'vendor/refresh-vendor-usages-worker
#'ledger/touch-broken-ledger-worker #'ledger/touch-broken-ledger-worker

View File

@@ -53,10 +53,6 @@
{ {
"name": "ECS_FARGATE", "name": "ECS_FARGATE",
"value": "true" "value": "true"
},
{
"name": "DD_DOCKER_ENV_AS_TAGS",
"value": "{\"which_env\":\"env\"}"
} }
], ],
"essential": true, "essential": true,

View File

@@ -58,10 +58,6 @@
{ {
"name": "ECS_FARGATE", "name": "ECS_FARGATE",
"value": "true" "value": "true"
},
{
"name": "DD_DOCKER_ENV_AS_TAGS",
"value": "{\"which_env\":\"env\"}"
} }
], ],
"essential": true, "essential": true,

View File

@@ -53,10 +53,6 @@
{ {
"name": "ECS_FARGATE", "name": "ECS_FARGATE",
"value": "true" "value": "true"
},
{
"name": "DD_DOCKER_ENV_AS_TAGS",
"value": "{\"which_env\":\"env\"}"
} }
], ],
"essential": true, "essential": true,

View File

@@ -1,7 +1,7 @@
{ {
"version": 4, "version": 4,
"terraform_version": "0.14.4", "terraform_version": "0.14.4",
"serial": 99, "serial": 107,
"lineage": "91d10fe0-8033-8778-c202-78d5a81632e8", "lineage": "91d10fe0-8033-8778-c202-78d5a81632e8",
"outputs": { "outputs": {
"aws_access_key_id": { "aws_access_key_id": {
@@ -153,7 +153,7 @@
], ],
"tags": {}, "tags": {},
"tags_all": {}, "tags_all": {},
"task_definition": "arn:aws:ecs:us-east-1:679918342773:task-definition/integreat_app_staging:101", "task_definition": "arn:aws:ecs:us-east-1:679918342773:task-definition/integreat_app_staging:105",
"timeouts": { "timeouts": {
"delete": null "delete": null
}, },
@@ -232,7 +232,7 @@
], ],
"tags": {}, "tags": {},
"tags_all": {}, "tags_all": {},
"task_definition": "arn:aws:ecs:us-east-1:679918342773:task-definition/integreat_background-worker_staging:21", "task_definition": "arn:aws:ecs:us-east-1:679918342773:task-definition/integreat_background-worker_staging:25",
"timeouts": { "timeouts": {
"delete": null "delete": null
}, },
@@ -256,8 +256,8 @@
{ {
"schema_version": 1, "schema_version": 1,
"attributes": { "attributes": {
"arn": "arn:aws:ecs:us-east-1:679918342773:task-definition/integreat_app_staging:103", "arn": "arn:aws:ecs:us-east-1:679918342773:task-definition/integreat_app_staging:106",
"container_definitions": "[{\"cpu\":0,\"dockerLabels\":{\"com.datadoghq.tags.env\":\"staging\",\"com.datadoghq.tags.service\":\"integreat-app\"},\"environment\":[{\"name\":\"DD_ENV\",\"value\":\"staging\"},{\"name\":\"DD_SERVICE\",\"value\":\"integreat-app\"},{\"name\":\"config\",\"value\":\"/usr/local/config/staging.edn\"}],\"essential\":true,\"image\":\"679918342773.dkr.ecr.us-east-1.amazonaws.com/integreat:staging\",\"logConfiguration\":{\"logDriver\":\"awslogs\",\"options\":{\"awslogs-group\":\"/ecs/integreat-app-staging\",\"awslogs-region\":\"us-east-1\",\"awslogs-stream-prefix\":\"ecs\"}},\"mountPoints\":[],\"name\":\"integreat-app\",\"portMappings\":[{\"containerPort\":3000,\"hostPort\":3000,\"protocol\":\"tcp\"},{\"containerPort\":9000,\"hostPort\":9000,\"protocol\":\"tcp\"}],\"volumesFrom\":[]},{\"cpu\":0,\"environment\":[{\"name\":\"DD_API_KEY\",\"value\":\"ce10d932c47b358e81081ae67bd8c112\"},{\"name\":\"DD_DOCKER_ENV_AS_TAGS\",\"value\":\"{\\\"which_env\\\":\\\"env\\\"}\"},{\"name\":\"ECS_FARGATE\",\"value\":\"true\"}],\"essential\":true,\"image\":\"public.ecr.aws/datadog/agent:latest\",\"mountPoints\":[],\"name\":\"datadog-agent\",\"portMappings\":[],\"volumesFrom\":[]}]", "container_definitions": "[{\"cpu\":0,\"dockerLabels\":{\"com.datadoghq.tags.env\":\"staging\",\"com.datadoghq.tags.service\":\"integreat-app\"},\"environment\":[{\"name\":\"DD_ENV\",\"value\":\"staging\"},{\"name\":\"DD_SERVICE\",\"value\":\"integreat-app\"},{\"name\":\"config\",\"value\":\"/usr/local/config/staging.edn\"}],\"essential\":true,\"image\":\"679918342773.dkr.ecr.us-east-1.amazonaws.com/integreat:staging\",\"logConfiguration\":{\"logDriver\":\"awslogs\",\"options\":{\"awslogs-group\":\"/ecs/integreat-app-staging\",\"awslogs-region\":\"us-east-1\",\"awslogs-stream-prefix\":\"ecs\"}},\"mountPoints\":[],\"name\":\"integreat-app\",\"portMappings\":[{\"containerPort\":3000,\"hostPort\":3000,\"protocol\":\"tcp\"},{\"containerPort\":9000,\"hostPort\":9000,\"protocol\":\"tcp\"}],\"volumesFrom\":[]},{\"cpu\":0,\"environment\":[{\"name\":\"DD_API_KEY\",\"value\":\"ce10d932c47b358e81081ae67bd8c112\"},{\"name\":\"ECS_FARGATE\",\"value\":\"true\"}],\"essential\":true,\"image\":\"public.ecr.aws/datadog/agent:latest\",\"mountPoints\":[],\"name\":\"datadog-agent\",\"portMappings\":[],\"volumesFrom\":[]}]",
"cpu": "2048", "cpu": "2048",
"ephemeral_storage": [], "ephemeral_storage": [],
"execution_role_arn": "arn:aws:iam::679918342773:role/ecsTaskExecutionRole", "execution_role_arn": "arn:aws:iam::679918342773:role/ecsTaskExecutionRole",
@@ -273,9 +273,9 @@
"requires_compatibilities": [ "requires_compatibilities": [
"FARGATE" "FARGATE"
], ],
"revision": 103, "revision": 106,
"runtime_platform": [], "runtime_platform": [],
"tags": null, "tags": {},
"tags_all": {}, "tags_all": {},
"task_role_arn": "arn:aws:iam::679918342773:role/datomic-ddb", "task_role_arn": "arn:aws:iam::679918342773:role/datomic-ddb",
"volume": [] "volume": []
@@ -294,7 +294,7 @@
{ {
"schema_version": 1, "schema_version": 1,
"attributes": { "attributes": {
"arn": "arn:aws:ecs:us-east-1:679918342773:task-definition/integreat_background-worker_staging:23", "arn": "arn:aws:ecs:us-east-1:679918342773:task-definition/integreat_background-worker_staging:26",
"container_definitions": "[{\"cpu\":0,\"dockerLabels\":{\"com.datadoghq.tags.env\":\"staging\",\"com.datadoghq.tags.service\":\"integreat-background-worker\"},\"environment\":[{\"name\":\"DD_ENV\",\"value\":\"staging\"},{\"name\":\"DD_SERVICE\",\"value\":\"integreat-background-worker\"},{\"name\":\"config\",\"value\":\"/usr/local/config/staging-background-worker.edn\"}],\"essential\":true,\"image\":\"679918342773.dkr.ecr.us-east-1.amazonaws.com/integreat:staging\",\"logConfiguration\":{\"logDriver\":\"awslogs\",\"options\":{\"awslogs-group\":\"/ecs/integreat-background-worker-staging\",\"awslogs-region\":\"us-east-1\",\"awslogs-stream-prefix\":\"ecs\"}},\"mountPoints\":[],\"name\":\"integreat-app\",\"portMappings\":[{\"containerPort\":9000,\"hostPort\":9000,\"protocol\":\"tcp\"},{\"containerPort\":9090,\"hostPort\":9090,\"protocol\":\"tcp\"}],\"volumesFrom\":[]},{\"cpu\":0,\"environment\":[{\"name\":\"DD_API_KEY\",\"value\":\"ce10d932c47b358e81081ae67bd8c112\"},{\"name\":\"ECS_FARGATE\",\"value\":\"true\"}],\"essential\":true,\"image\":\"public.ecr.aws/datadog/agent:latest\",\"mountPoints\":[],\"name\":\"datadog-agent\",\"portMappings\":[],\"volumesFrom\":[]}]", "container_definitions": "[{\"cpu\":0,\"dockerLabels\":{\"com.datadoghq.tags.env\":\"staging\",\"com.datadoghq.tags.service\":\"integreat-background-worker\"},\"environment\":[{\"name\":\"DD_ENV\",\"value\":\"staging\"},{\"name\":\"DD_SERVICE\",\"value\":\"integreat-background-worker\"},{\"name\":\"config\",\"value\":\"/usr/local/config/staging-background-worker.edn\"}],\"essential\":true,\"image\":\"679918342773.dkr.ecr.us-east-1.amazonaws.com/integreat:staging\",\"logConfiguration\":{\"logDriver\":\"awslogs\",\"options\":{\"awslogs-group\":\"/ecs/integreat-background-worker-staging\",\"awslogs-region\":\"us-east-1\",\"awslogs-stream-prefix\":\"ecs\"}},\"mountPoints\":[],\"name\":\"integreat-app\",\"portMappings\":[{\"containerPort\":9000,\"hostPort\":9000,\"protocol\":\"tcp\"},{\"containerPort\":9090,\"hostPort\":9090,\"protocol\":\"tcp\"}],\"volumesFrom\":[]},{\"cpu\":0,\"environment\":[{\"name\":\"DD_API_KEY\",\"value\":\"ce10d932c47b358e81081ae67bd8c112\"},{\"name\":\"ECS_FARGATE\",\"value\":\"true\"}],\"essential\":true,\"image\":\"public.ecr.aws/datadog/agent:latest\",\"mountPoints\":[],\"name\":\"datadog-agent\",\"portMappings\":[],\"volumesFrom\":[]}]",
"cpu": "1024", "cpu": "1024",
"ephemeral_storage": [], "ephemeral_storage": [],
@@ -311,7 +311,7 @@
"requires_compatibilities": [ "requires_compatibilities": [
"FARGATE" "FARGATE"
], ],
"revision": 23, "revision": 26,
"runtime_platform": [], "runtime_platform": [],
"tags": null, "tags": null,
"tags_all": {}, "tags_all": {},

View File

@@ -1,7 +1,7 @@
{ {
"version": 4, "version": 4,
"terraform_version": "0.14.4", "terraform_version": "0.14.4",
"serial": 94, "serial": 104,
"lineage": "91d10fe0-8033-8778-c202-78d5a81632e8", "lineage": "91d10fe0-8033-8778-c202-78d5a81632e8",
"outputs": { "outputs": {
"aws_access_key_id": { "aws_access_key_id": {
@@ -153,7 +153,7 @@
], ],
"tags": {}, "tags": {},
"tags_all": {}, "tags_all": {},
"task_definition": "arn:aws:ecs:us-east-1:679918342773:task-definition/integreat_app_staging:101", "task_definition": "arn:aws:ecs:us-east-1:679918342773:task-definition/integreat_app_staging:105",
"timeouts": { "timeouts": {
"delete": null "delete": null
}, },
@@ -232,7 +232,7 @@
], ],
"tags": {}, "tags": {},
"tags_all": {}, "tags_all": {},
"task_definition": "arn:aws:ecs:us-east-1:679918342773:task-definition/integreat_background-worker_staging:21", "task_definition": "arn:aws:ecs:us-east-1:679918342773:task-definition/integreat_background-worker_staging:25",
"timeouts": { "timeouts": {
"delete": null "delete": null
}, },
@@ -256,8 +256,8 @@
{ {
"schema_version": 1, "schema_version": 1,
"attributes": { "attributes": {
"arn": "arn:aws:ecs:us-east-1:679918342773:task-definition/integreat_app_staging:102", "arn": "arn:aws:ecs:us-east-1:679918342773:task-definition/integreat_app_staging:106",
"container_definitions": "[{\"cpu\":0,\"environment\":[{\"name\":\"config\",\"value\":\"/usr/local/config/staging.edn\"},{\"name\":\"which_env\",\"value\":\"staging\"}],\"essential\":true,\"image\":\"679918342773.dkr.ecr.us-east-1.amazonaws.com/integreat:staging\",\"logConfiguration\":{\"logDriver\":\"awslogs\",\"options\":{\"awslogs-group\":\"/ecs/integreat-app-staging\",\"awslogs-region\":\"us-east-1\",\"awslogs-stream-prefix\":\"ecs\"}},\"mountPoints\":[],\"name\":\"integreat-app\",\"portMappings\":[{\"containerPort\":3000,\"hostPort\":3000,\"protocol\":\"tcp\"},{\"containerPort\":9000,\"hostPort\":9000,\"protocol\":\"tcp\"}],\"volumesFrom\":[]},{\"cpu\":0,\"environment\":[{\"name\":\"DD_API_KEY\",\"value\":\"ce10d932c47b358e81081ae67bd8c112\"},{\"name\":\"DD_DOCKER_ENV_AS_TAGS\",\"value\":\"{\\\"which_env\\\":\\\"env\\\"}\"},{\"name\":\"ECS_FARGATE\",\"value\":\"true\"}],\"essential\":true,\"image\":\"public.ecr.aws/datadog/agent:latest\",\"mountPoints\":[],\"name\":\"datadog-agent\",\"portMappings\":[],\"volumesFrom\":[]}]", "container_definitions": "[{\"cpu\":0,\"dockerLabels\":{\"com.datadoghq.tags.env\":\"staging\",\"com.datadoghq.tags.service\":\"integreat-app\"},\"environment\":[{\"name\":\"DD_ENV\",\"value\":\"staging\"},{\"name\":\"DD_SERVICE\",\"value\":\"integreat-app\"},{\"name\":\"config\",\"value\":\"/usr/local/config/staging.edn\"}],\"essential\":true,\"image\":\"679918342773.dkr.ecr.us-east-1.amazonaws.com/integreat:staging\",\"logConfiguration\":{\"logDriver\":\"awslogs\",\"options\":{\"awslogs-group\":\"/ecs/integreat-app-staging\",\"awslogs-region\":\"us-east-1\",\"awslogs-stream-prefix\":\"ecs\"}},\"mountPoints\":[],\"name\":\"integreat-app\",\"portMappings\":[{\"containerPort\":3000,\"hostPort\":3000,\"protocol\":\"tcp\"},{\"containerPort\":9000,\"hostPort\":9000,\"protocol\":\"tcp\"}],\"volumesFrom\":[]},{\"cpu\":0,\"environment\":[{\"name\":\"DD_API_KEY\",\"value\":\"ce10d932c47b358e81081ae67bd8c112\"},{\"name\":\"ECS_FARGATE\",\"value\":\"true\"}],\"essential\":true,\"image\":\"public.ecr.aws/datadog/agent:latest\",\"mountPoints\":[],\"name\":\"datadog-agent\",\"portMappings\":[],\"volumesFrom\":[]}]",
"cpu": "2048", "cpu": "2048",
"ephemeral_storage": [], "ephemeral_storage": [],
"execution_role_arn": "arn:aws:iam::679918342773:role/ecsTaskExecutionRole", "execution_role_arn": "arn:aws:iam::679918342773:role/ecsTaskExecutionRole",
@@ -273,7 +273,7 @@
"requires_compatibilities": [ "requires_compatibilities": [
"FARGATE" "FARGATE"
], ],
"revision": 102, "revision": 106,
"runtime_platform": [], "runtime_platform": [],
"tags": null, "tags": null,
"tags_all": {}, "tags_all": {},
@@ -292,10 +292,11 @@
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": [ "instances": [
{ {
"status": "tainted",
"schema_version": 1, "schema_version": 1,
"attributes": { "attributes": {
"arn": "arn:aws:ecs:us-east-1:679918342773:task-definition/integreat_background-worker_staging:22", "arn": "arn:aws:ecs:us-east-1:679918342773:task-definition/integreat_background-worker_staging:23",
"container_definitions": "[{\"cpu\":0,\"environment\":[{\"name\":\"config\",\"value\":\"/usr/local/config/staging-background-worker.edn\"},{\"name\":\"which_env\",\"value\":\"staging\"}],\"essential\":true,\"image\":\"679918342773.dkr.ecr.us-east-1.amazonaws.com/integreat:staging\",\"logConfiguration\":{\"logDriver\":\"awslogs\",\"options\":{\"awslogs-group\":\"/ecs/integreat-background-worker-staging\",\"awslogs-region\":\"us-east-1\",\"awslogs-stream-prefix\":\"ecs\"}},\"mountPoints\":[],\"name\":\"integreat-app\",\"portMappings\":[{\"containerPort\":9000,\"hostPort\":9000,\"protocol\":\"tcp\"},{\"containerPort\":9090,\"hostPort\":9090,\"protocol\":\"tcp\"}],\"volumesFrom\":[]},{\"cpu\":0,\"environment\":[{\"name\":\"DD_API_KEY\",\"value\":\"ce10d932c47b358e81081ae67bd8c112\"},{\"name\":\"DD_DOCKER_ENV_AS_TAGS\",\"value\":\"{\\\"which_env\\\":\\\"env\\\"}\"},{\"name\":\"ECS_FARGATE\",\"value\":\"true\"}],\"essential\":true,\"image\":\"public.ecr.aws/datadog/agent:latest\",\"mountPoints\":[],\"name\":\"datadog-agent\",\"portMappings\":[],\"volumesFrom\":[]}]", "container_definitions": "[{\"cpu\":0,\"dockerLabels\":{\"com.datadoghq.tags.env\":\"staging\",\"com.datadoghq.tags.service\":\"integreat-background-worker\"},\"environment\":[{\"name\":\"DD_ENV\",\"value\":\"staging\"},{\"name\":\"DD_SERVICE\",\"value\":\"integreat-background-worker\"},{\"name\":\"config\",\"value\":\"/usr/local/config/staging-background-worker.edn\"}],\"essential\":true,\"image\":\"679918342773.dkr.ecr.us-east-1.amazonaws.com/integreat:staging\",\"logConfiguration\":{\"logDriver\":\"awslogs\",\"options\":{\"awslogs-group\":\"/ecs/integreat-background-worker-staging\",\"awslogs-region\":\"us-east-1\",\"awslogs-stream-prefix\":\"ecs\"}},\"mountPoints\":[],\"name\":\"integreat-app\",\"portMappings\":[{\"containerPort\":9000,\"hostPort\":9000,\"protocol\":\"tcp\"},{\"containerPort\":9090,\"hostPort\":9090,\"protocol\":\"tcp\"}],\"volumesFrom\":[]},{\"cpu\":0,\"environment\":[{\"name\":\"DD_API_KEY\",\"value\":\"ce10d932c47b358e81081ae67bd8c112\"},{\"name\":\"ECS_FARGATE\",\"value\":\"true\"}],\"essential\":true,\"image\":\"public.ecr.aws/datadog/agent:latest\",\"mountPoints\":[],\"name\":\"datadog-agent\",\"portMappings\":[],\"volumesFrom\":[]}]",
"cpu": "1024", "cpu": "1024",
"ephemeral_storage": [], "ephemeral_storage": [],
"execution_role_arn": "arn:aws:iam::679918342773:role/ecsTaskExecutionRole", "execution_role_arn": "arn:aws:iam::679918342773:role/ecsTaskExecutionRole",
@@ -311,9 +312,9 @@
"requires_compatibilities": [ "requires_compatibilities": [
"FARGATE" "FARGATE"
], ],
"revision": 22, "revision": 23,
"runtime_platform": [], "runtime_platform": [],
"tags": null, "tags": {},
"tags_all": {}, "tags_all": {},
"task_role_arn": "arn:aws:iam::679918342773:role/datomic-ddb", "task_role_arn": "arn:aws:iam::679918342773:role/datomic-ddb",
"volume": [] "volume": []