{"id":17677956,"url":"https://github.com/meteor/meteor-perf","last_synced_at":"2025-05-12T22:23:47.068Z","repository":{"id":258219295,"uuid":"870285570","full_name":"meteor/meteor-perf","owner":"meteor","description":null,"archived":false,"fork":false,"pushed_at":"2024-10-16T19:52:07.000Z","size":40,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-12T02:55:36.562Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/meteor.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-10-09T19:04:55.000Z","updated_at":"2024-11-04T21:02:35.000Z","dependencies_parsed_at":"2024-10-19T00:20:29.061Z","dependency_job_id":null,"html_url":"https://github.com/meteor/meteor-perf","commit_stats":null,"previous_names":["meteor/meteor-perf"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meteor%2Fmeteor-perf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meteor%2Fmeteor-perf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meteor%2Fmeteor-perf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meteor%2Fmeteor-perf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/meteor","download_url":"https://codeload.github.com/meteor/meteor-perf/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253831638,"owners_count":21971126,"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-10-24T08:03:09.429Z","updated_at":"2025-05-12T22:23:47.023Z","avatar_url":"https://github.com/meteor.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":":construction: Work in progress! :construction:\n\nReal-time performance optimization for Meteor apps.\n\nGoal: Help detect oplog flooding and event loop blocking issues in Meteor apps, eventually providing easy to understand diagnostic messages users can act upon.\n\n## Installation\n\n```shell\nmeteor add meteor-perf\n```\n\n## Usage\n\nRight now it will output a file called `meteor-perf.json` in the root of your project as your app is running.\n\nThis file can be inspected in any code editor that supports JSON.\n\nThe object contains the following keys;\n\n### `bytes_sent`:\n\nThe amount of data sent from the server to the client in bytes.\n\n### `async_traces`:\n\nAn array of objects containing traces for async resources that were created during Event Loop Lag, along with execution count.\n\n### `observer_stats`:\n\nAn array of objects containing stat objects for Observer Handles,\nthe number of operations they performed, and a key to identify them.\nThe key is composed of the `collection` and the `selector` separated by `::`.\n\nIt groups the stats by selector, so you can see how many operations were performed on a specific query.\n\nExample:\n\n```json\n{\n  \"bytes_sent\": 2661331,\n  \"async_traces\": [\n    {\n      \"count\": 60,\n      \"types\": [\n        \"PROMISE\"\n      ],\n      \"stack\": \"    at Publication._getCursor (packages/reywood:publish-composite/lib/publication.js:95:36)\\n    at Publication.publish (packages/reywood:publish-composite/lib/publication.js:26:30)\\n    at packages/reywood:publish-composite/lib/publication.js:110:17\\n    at Array.map (\u003canonymous\u003e)\\n    at Publication._publishChildrenOf (packages/reywood:publish-composite/lib/publication.js:106:32)\\n    at Publication._handleAddedAsync (packages/reywood:publish-composite/lib/publication.js:77:18)\\n    at packages/reywood:publish-composite/lib/publication.js:38:16\\n    at new Promise (\u003canonymous\u003e)\\n    at packages/reywood:publish-composite/lib/publication.js:36:30\\n    at packages/meteor.js:1399:24\"\n    }\n  ],\n  \"observer_stats\": [\n    {\n      \"key\": \"child::{\\\"parentId\\\":\\\"MBLMPnnYYCu3RC99p\\\"}\",\n      \"added\": 5600,\n      \"changed\": 3234,\n      \"removed\": 0,\n      \"started\": 56,\n      \"stopped\": 42,\n      \"lagging_added\": 0,\n      \"lagging_changed\": 0,\n      \"lagging_removed\": 0,\n      \"score\": 14854\n    }\n  ]\n}\n```\n\n## Downloading the stat file\n\nYou can call the following HTTP endpoint to download the stat file:\n\n```\nGET /meteor-perf.json\n```\n\n## License\n\nMIT","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmeteor%2Fmeteor-perf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmeteor%2Fmeteor-perf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmeteor%2Fmeteor-perf/lists"}