{"id":18636669,"url":"https://github.com/localstack/localstack-extension-platform-observability","last_synced_at":"2025-12-26T12:36:49.334Z","repository":{"id":216736653,"uuid":"741183507","full_name":"localstack/localstack-extension-platform-observability","owner":"localstack","description":"Experimental extension to log various metrics of the locastack platform","archived":false,"fork":false,"pushed_at":"2024-07-16T23:39:10.000Z","size":25,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":19,"default_branch":"main","last_synced_at":"2025-02-20T00:31:45.427Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/localstack.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-09T21:41:56.000Z","updated_at":"2024-12-12T23:25:16.000Z","dependencies_parsed_at":"2024-11-07T05:33:20.926Z","dependency_job_id":"332cfbee-ee52-42e2-a5fa-cf35c5713f51","html_url":"https://github.com/localstack/localstack-extension-platform-observability","commit_stats":null,"previous_names":["localstack/localstack-extension-platform-observability"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/localstack%2Flocalstack-extension-platform-observability","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/localstack%2Flocalstack-extension-platform-observability/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/localstack%2Flocalstack-extension-platform-observability/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/localstack%2Flocalstack-extension-platform-observability/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/localstack","download_url":"https://codeload.github.com/localstack/localstack-extension-platform-observability/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243335382,"owners_count":20274898,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-07T05:31:04.962Z","updated_at":"2025-12-26T12:36:49.288Z","avatar_url":"https://github.com/localstack.png","language":"Python","readme":"LocalStack Extension: Platform observability\n===============================\n\nLocalStack extension for providing insights into the LocalStack platform in the form of service-specific traces and metrics.\n\n## Install\n\n```bash\nlocalstack extensions install localstack-extension-platform-observability\n```\n\n## Install local development version\n\nTo install the extension into localstack in developer mode, you will need Python 3.10, and create a virtual environment in the extensions project.\n\nIn the newly generated project, simply run\n\n```bash\nmake install\n```\n\nThen, to enable the extension for LocalStack, run\n\n```bash\nlocalstack extensions dev enable .\n```\n\nYou can then start LocalStack with `EXTENSION_DEV_MODE=1` to load all enabled extensions:\n\n```bash\nEXTENSION_DEV_MODE=1 localstack start\n```\n\n## Install from GitHub repository\n\nTo distribute your extension, simply upload it to your github account. Your extension can then be installed via:\n\n```bash\nlocalstack extensions install \"git+https://github.com/localstack/localstack-extension-platform-observability/#egg=localstack-extension-platform-observability\"\n```\n\n## Usage\n\n### Metrics\n\nFetch all metrics\n\n```bash\ncurl localhost:4566/_extension/observability/metrics\n```\n\nFetch a specific instrument\n\n```bash\ncurl localhost:4566/_extension/observability/metrics/\u003cinstrument\u003e\n```\n\nThe following instruments exist\n* `system`: system metrics like number of threads\n* `sns`: sns topic statistics\n* `sqs`: sqs queue statistics\n* `gateway`: HTTP gateway statistics on number of requests\n\nExample:\n\n```bash\ncurl -s \"localhost:4566/_extension/observability/metrics\" | jq .\n```\n```json\n{\n  \"system\": [\n    {\n      \"active_thread_count\": 15,\n      \"max_rss\": 15\n    }\n  ],\n  \"gateway\": [\n    {\n      \"total\": 14,\n      \"sqs.SendMessage\": 2,\n      \"sqs.ReceiveMessage\": 1,\n      \"sns.Publish\": 1,\n      \"dynamodb.PutItem\": 0,\n      \"dynamodb.GetItem\": 0,\n      \"dynamodb.BatchWriteItem\": 0,\n      \"dynamodb.BatchGetItem\": 0,\n      \"lambda.Invoke\": 0\n    }\n  ],\n  \"sqs\": [\n    {\n      \"queue\": \"arn:aws:sqs:us-east-1:000000000000:input-dead-letter-queue\",\n      \"visible\": 0,\n      \"invisible\": 0,\n      \"delayed\": 0\n    },\n    {\n      \"queue\": \"arn:aws:sqs:us-east-1:000000000000:input-queue\",\n      \"visible\": 2,\n      \"invisible\": 0,\n      \"delayed\": 0\n    },\n    {\n      \"queue\": \"arn:aws:sqs:us-east-1:000000000000:recovery-queue\",\n      \"visible\": 0,\n      \"invisible\": 0,\n      \"delayed\": 0\n    }\n  ],\n  \"sns\": [\n    {\n      \"topic_arn\": \"arn:aws:sns:us-east-1:000000000000:localstack-topic\",\n      \"published\": 1,\n      \"delivered\": 0,\n      \"failed\": 0\n    }\n  ],\n  \"timestamp\": 1704986115.3762584\n}\n```\n\n\n### Trace logs\n\n#### Lambda\n\nFind lambda traces in\n```bash\n/var/lib/localstack/cache/observability/traces-lambda-events/\n```\n\nHere is an example:\n\n```json\n{\"timestamp\": 1704984270.1660516, \"event\": \"enqueued\", \"request_id\": \"ad2df0ed-c952-4f48-881c-8b944dad44c6\", \"lambda_arn\": \"arn:aws:lambda:us-east-1:000000000000:function:test-lambda-perf-e0c504b2\", \"failure_cause\": null}\n{\"timestamp\": 1704984270.184178, \"event\": \"enqueued\", \"request_id\": \"d5d2efb3-e781-411a-b718-e2345c118c39\", \"lambda_arn\": \"arn:aws:lambda:us-east-1:000000000000:function:test-lambda-perf-e0c504b2\", \"failure_cause\": null}\n{\"timestamp\": 1704984270.3365452, \"event\": \"submitted\", \"request_id\": \"ad2df0ed-c952-4f48-881c-8b944dad44c6\", \"lambda_arn\": \"arn:aws:lambda:us-east-1:000000000000:function:test-lambda-perf-e0c504b2\", \"failure_cause\": null}\n{\"timestamp\": 1704984270.3368104, \"event\": \"invoking\", \"request_id\": \"ad2df0ed-c952-4f48-881c-8b944dad44c6\", \"lambda_arn\": \"arn:aws:lambda:us-east-1:000000000000:function:test-lambda-perf-e0c504b2\", \"failure_cause\": null}\n{\"timestamp\": 1704984270.4253993, \"event\": \"submitted\", \"request_id\": \"d5d2efb3-e781-411a-b718-e2345c118c39\", \"lambda_arn\": \"arn:aws:lambda:us-east-1:000000000000:function:test-lambda-perf-e0c504b2\", \"failure_cause\": null}\n```\n\n\n#### Lambda SQS Event source listeners\n\nFind traces that relate to lambda sqs event source listeners in\n```bash\n/var/lib/localstack/cache/observability/traces-lambda-sqs/\n```\n\nHere is an example of queueing two message to trigger a lambda.\n\n```json\n{\"timestamp\": 1705009138.683765, \"event\": \"message_queued\", \"message_id\": \"94c3e579-dd40-48a6-bfaa-5d1d04c79044\", \"event_source_arn\": \"arn:aws:sqs:us-east-1:000000000000:test-queue-a5d98750\", \"lambda_arn\": null, \"request_id\": null, \"failure_cause\": null}\n{\"timestamp\": 1705009138.6840491, \"event\": \"message_queued\", \"message_id\": \"00787a9f-1d70-452d-9fec-f25bf7064e32\", \"event_source_arn\": \"arn:aws:sqs:us-east-1:000000000000:test-queue-a5d98750\", \"lambda_arn\": null, \"request_id\": null, \"failure_cause\": null}\n{\"timestamp\": 1705009139.6799114, \"event\": \"message_dequeued\", \"message_id\": \"94c3e579-dd40-48a6-bfaa-5d1d04c79044\", \"event_source_arn\": \"arn:aws:sqs:us-east-1:000000000000:test-queue-a5d98750\", \"lambda_arn\": \"arn:aws:lambda:us-east-1:000000000000:function:test-lambda-perf-33b02082\", \"request_id\": null, \"failure_cause\": null}\n{\"timestamp\": 1705009139.6799738, \"event\": \"invoke_queued\", \"message_id\": \"94c3e579-dd40-48a6-bfaa-5d1d04c79044\", \"event_source_arn\": \"arn:aws:sqs:us-east-1:000000000000:test-queue-a5d98750\", \"lambda_arn\": \"arn:aws:lambda:us-east-1:000000000000:function:test-lambda-perf-33b02082\", \"request_id\": \"0d616a5e-2511-4c88-a7b2-de0f0a7161ed\", \"failure_cause\": null}\n{\"timestamp\": 1705009139.6801724, \"event\": \"invoke\", \"message_id\": \"94c3e579-dd40-48a6-bfaa-5d1d04c79044\", \"event_source_arn\": \"arn:aws:sqs:us-east-1:000000000000:test-queue-a5d98750\", \"lambda_arn\": \"arn:aws:lambda:us-east-1:000000000000:function:test-lambda-perf-33b02082\", \"request_id\": \"0d616a5e-2511-4c88-a7b2-de0f0a7161ed\", \"failure_cause\": null}\n{\"timestamp\": 1705009140.0882578, \"event\": \"invoke_success\", \"message_id\": \"94c3e579-dd40-48a6-bfaa-5d1d04c79044\", \"event_source_arn\": \"arn:aws:sqs:us-east-1:000000000000:test-queue-a5d98750\", \"lambda_arn\": \"arn:aws:lambda:us-east-1:000000000000:function:test-lambda-perf-33b02082\", \"request_id\": \"0d616a5e-2511-4c88-a7b2-de0f0a7161ed\", \"failure_cause\": null}\n{\"timestamp\": 1705009140.6862357, \"event\": \"message_dequeued\", \"message_id\": \"00787a9f-1d70-452d-9fec-f25bf7064e32\", \"event_source_arn\": \"arn:aws:sqs:us-east-1:000000000000:test-queue-a5d98750\", \"lambda_arn\": \"arn:aws:lambda:us-east-1:000000000000:function:test-lambda-perf-33b02082\", \"request_id\": null, \"failure_cause\": null}\n{\"timestamp\": 1705009140.6865497, \"event\": \"invoke_queued\", \"message_id\": \"00787a9f-1d70-452d-9fec-f25bf7064e32\", \"event_source_arn\": \"arn:aws:sqs:us-east-1:000000000000:test-queue-a5d98750\", \"lambda_arn\": \"arn:aws:lambda:us-east-1:000000000000:function:test-lambda-perf-33b02082\", \"request_id\": \"101a0017-172b-401b-9381-34aa1a4d3e7c\", \"failure_cause\": null}\n{\"timestamp\": 1705009140.6868262, \"event\": \"invoke\", \"message_id\": \"00787a9f-1d70-452d-9fec-f25bf7064e32\", \"event_source_arn\": \"arn:aws:sqs:us-east-1:000000000000:test-queue-a5d98750\", \"lambda_arn\": \"arn:aws:lambda:us-east-1:000000000000:function:test-lambda-perf-33b02082\", \"request_id\": \"101a0017-172b-401b-9381-34aa1a4d3e7c\", \"failure_cause\": null}\n{\"timestamp\": 1705009140.6951976, \"event\": \"invoke_success\", \"message_id\": \"00787a9f-1d70-452d-9fec-f25bf7064e32\", \"event_source_arn\": \"arn:aws:sqs:us-east-1:000000000000:test-queue-a5d98750\", \"lambda_arn\": \"arn:aws:lambda:us-east-1:000000000000:function:test-lambda-perf-33b02082\", \"request_id\": \"101a0017-172b-401b-9381-34aa1a4d3e7c\", \"failure_cause\": null}\n```","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flocalstack%2Flocalstack-extension-platform-observability","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flocalstack%2Flocalstack-extension-platform-observability","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flocalstack%2Flocalstack-extension-platform-observability/lists"}