[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"footer-description":3,"directus-extension-prometheus":5,"footer-primary":93,"footer-secondary":182,"header-nav":208,"header-nav-data":347,"github-stars":349,"site-banners":452,"dfd79d2b-7af5-4cdb-aa94-3f73de97ebd8":458,"8f849cd0-a47b-4e32-bb19-b478973c90f7":464,"74634853-196b-4ce3-b256-4534c054838f":470,"358b0659-1f05-4427-bd1c-4bc03a43c182":499,"9df3f40e-6272-4ec6-a0d7-cc29265e087c":506,"1b444c23-b593-4391-9410-4ca5d2c7a7cb":510},{"description":4},"\u003Cp>A composable backend to build your Headless CMS, BaaS, and more.&nbsp;\u003C/p>",{"name":6,"description":7,"verified":8,"id":9,"readme":10,"type":11,"last_updated":12,"host_version":13,"downloads":14,"total_downloads":15,"sandbox":8,"license":16,"publisher":17,"versions":21,"formatted_name":90,"formatted_readme":91,"formatted_description":7,"images":92,"recent_downloads_7_days":15,"recent_downloads_30_days":15},"directus-extension-prometheus","Export Directus metrics into prometheus",false,"d9017186-28b1-441c-9564-738c4f9e9718","# Directus Extension: Prometheus\n\nExpose directus metrics to your prometheus instance.\n\nNo configuration required.\n\n## Install into your project\n\n```bash\nnpm install directus-extension-prometheus\n```\n\nNow, when you launch your directus instance, you will receive\nmetrics on the /metrics endpoint.\n\n## Optional Configuration\n\n\n| Option                        | Description                                               | Default      |\n|-------------------------------|-----------------------------------------------------------|--------------|\n| `PROMETHEUS_METRICS_ENDPOINT` | The endpoint on which the prometheus metrics are exposed. | `\"/metrics\"` |\n\n## Default Metrics\n\nHere is an example of the types of metrics exposed by this extension:\n\n```\n# HELP directus_request_count The total number of http requests\n# TYPE directus_request_count counter\ndirectus_request_count{status=\"200\",method=\"GET\"} 160\ndirectus_request_count{status=\"200\",method=\"POST\"} 2\ndirectus_request_count{status=\"304\",method=\"GET\"} 12\ndirectus_request_count{status=\"204\",method=\"PATCH\"} 5\n\n# HELP directus_request_duration_seconds The total duration of http requests\n# TYPE directus_request_duration_seconds histogram\ndirectus_request_duration_seconds_bucket{le=\"0.005\",method=\"GET\",status=\"200\"} 10\ndirectus_request_duration_seconds_bucket{le=\"0.01\",method=\"GET\",status=\"200\"} 57\ndirectus_request_duration_seconds_bucket{le=\"0.025\",method=\"GET\",status=\"200\"} 141\ndirectus_request_duration_seconds_bucket{le=\"0.05\",method=\"GET\",status=\"200\"} 158\ndirectus_request_duration_seconds_bucket{le=\"0.1\",method=\"GET\",status=\"200\"} 160\ndirectus_request_duration_seconds_bucket{le=\"0.25\",method=\"GET\",status=\"200\"} 160\ndirectus_request_duration_seconds_bucket{le=\"0.5\",method=\"GET\",status=\"200\"} 160\ndirectus_request_duration_seconds_bucket{le=\"1\",method=\"GET\",status=\"200\"} 160\ndirectus_request_duration_seconds_bucket{le=\"2.5\",method=\"GET\",status=\"200\"} 160\ndirectus_request_duration_seconds_bucket{le=\"5\",method=\"GET\",status=\"200\"} 160\ndirectus_request_duration_seconds_bucket{le=\"10\",method=\"GET\",status=\"200\"} 160\ndirectus_request_duration_seconds_bucket{le=\"+Inf\",method=\"GET\",status=\"200\"} 160\ndirectus_request_duration_seconds_sum{method=\"GET\",status=\"200\"} 2.239873104999999\ndirectus_request_duration_seconds_count{method=\"GET\",status=\"200\"} 160\ndirectus_request_duration_seconds_bucket{le=\"0.005\",method=\"POST\",status=\"200\"} 0\ndirectus_request_duration_seconds_bucket{le=\"0.01\",method=\"POST\",status=\"200\"} 0\ndirectus_request_duration_seconds_bucket{le=\"0.025\",method=\"POST\",status=\"200\"} 1\ndirectus_request_duration_seconds_bucket{le=\"0.05\",method=\"POST\",status=\"200\"} 1\ndirectus_request_duration_seconds_bucket{le=\"0.1\",method=\"POST\",status=\"200\"} 2\ndirectus_request_duration_seconds_bucket{le=\"0.25\",method=\"POST\",status=\"200\"} 2\ndirectus_request_duration_seconds_bucket{le=\"0.5\",method=\"POST\",status=\"200\"} 2\ndirectus_request_duration_seconds_bucket{le=\"1\",method=\"POST\",status=\"200\"} 2\ndirectus_request_duration_seconds_bucket{le=\"2.5\",method=\"POST\",status=\"200\"} 2\ndirectus_request_duration_seconds_bucket{le=\"5\",method=\"POST\",status=\"200\"} 2\ndirectus_request_duration_seconds_bucket{le=\"10\",method=\"POST\",status=\"200\"} 2\ndirectus_request_duration_seconds_bucket{le=\"+Inf\",method=\"POST\",status=\"200\"} 2\ndirectus_request_duration_seconds_sum{method=\"POST\",status=\"200\"} 0.08861785999999999\ndirectus_request_duration_seconds_count{method=\"POST\",status=\"200\"} 2\ndirectus_request_duration_seconds_bucket{le=\"0.005\",method=\"GET\",status=\"304\"} 0\ndirectus_request_duration_seconds_bucket{le=\"0.01\",method=\"GET\",status=\"304\"} 6\ndirectus_request_duration_seconds_bucket{le=\"0.025\",method=\"GET\",status=\"304\"} 11\ndirectus_request_duration_seconds_bucket{le=\"0.05\",method=\"GET\",status=\"304\"} 12\ndirectus_request_duration_seconds_bucket{le=\"0.1\",method=\"GET\",status=\"304\"} 12\ndirectus_request_duration_seconds_bucket{le=\"0.25\",method=\"GET\",status=\"304\"} 12\ndirectus_request_duration_seconds_bucket{le=\"0.5\",method=\"GET\",status=\"304\"} 12\ndirectus_request_duration_seconds_bucket{le=\"1\",method=\"GET\",status=\"304\"} 12\ndirectus_request_duration_seconds_bucket{le=\"2.5\",method=\"GET\",status=\"304\"} 12\ndirectus_request_duration_seconds_bucket{le=\"5\",method=\"GET\",status=\"304\"} 12\ndirectus_request_duration_seconds_bucket{le=\"10\",method=\"GET\",status=\"304\"} 12\ndirectus_request_duration_seconds_bucket{le=\"+Inf\",method=\"GET\",status=\"304\"} 12\ndirectus_request_duration_seconds_sum{method=\"GET\",status=\"304\"} 0.16695966899999998\ndirectus_request_duration_seconds_count{method=\"GET\",status=\"304\"} 12\ndirectus_request_duration_seconds_bucket{le=\"0.005\",method=\"PATCH\",status=\"204\"} 0\ndirectus_request_duration_seconds_bucket{le=\"0.01\",method=\"PATCH\",status=\"204\"} 4\ndirectus_request_duration_seconds_bucket{le=\"0.025\",method=\"PATCH\",status=\"204\"} 5\ndirectus_request_duration_seconds_bucket{le=\"0.05\",method=\"PATCH\",status=\"204\"} 5\ndirectus_request_duration_seconds_bucket{le=\"0.1\",method=\"PATCH\",status=\"204\"} 5\ndirectus_request_duration_seconds_bucket{le=\"0.25\",method=\"PATCH\",status=\"204\"} 5\ndirectus_request_duration_seconds_bucket{le=\"0.5\",method=\"PATCH\",status=\"204\"} 5\ndirectus_request_duration_seconds_bucket{le=\"1\",method=\"PATCH\",status=\"204\"} 5\ndirectus_request_duration_seconds_bucket{le=\"2.5\",method=\"PATCH\",status=\"204\"} 5\ndirectus_request_duration_seconds_bucket{le=\"5\",method=\"PATCH\",status=\"204\"} 5\ndirectus_request_duration_seconds_bucket{le=\"10\",method=\"PATCH\",status=\"204\"} 5\ndirectus_request_duration_seconds_bucket{le=\"+Inf\",method=\"PATCH\",status=\"204\"} 5\ndirectus_request_duration_seconds_sum{method=\"PATCH\",status=\"204\"} 0.059318456000000006\ndirectus_request_duration_seconds_count{method=\"PATCH\",status=\"204\"} 5\n\n# HELP directus_collection_size The total number of items in each collection\n# TYPE directus_collection_size gauge\ndirectus_collection_size{collection=\"directus_activity\"} 4\ndirectus_collection_size{collection=\"directus_collections\"} 1\ndirectus_collection_size{collection=\"directus_fields\"} 1\ndirectus_collection_size{collection=\"directus_files\"} 0\ndirectus_collection_size{collection=\"directus_folders\"} 0\ndirectus_collection_size{collection=\"directus_migrations\"} 62\ndirectus_collection_size{collection=\"directus_permissions\"} 0\ndirectus_collection_size{collection=\"directus_presets\"} 0\ndirectus_collection_size{collection=\"directus_relations\"} 0\ndirectus_collection_size{collection=\"directus_revisions\"} 2\ndirectus_collection_size{collection=\"directus_roles\"} 1\ndirectus_collection_size{collection=\"directus_sessions\"} 2\ndirectus_collection_size{collection=\"directus_settings\"} 0\ndirectus_collection_size{collection=\"directus_users\"} 1\ndirectus_collection_size{collection=\"directus_webhooks\"} 0\ndirectus_collection_size{collection=\"directus_dashboards\"} 0\ndirectus_collection_size{collection=\"directus_panels\"} 0\ndirectus_collection_size{collection=\"directus_notifications\"} 0\ndirectus_collection_size{collection=\"directus_shares\"} 0\ndirectus_collection_size{collection=\"directus_flows\"} 0\ndirectus_collection_size{collection=\"directus_operations\"} 0\ndirectus_collection_size{collection=\"thing\"} 0\n```\n\n## Adding Your Own Metrics\n\nTo add your own metrics, you have to [create an extension](https://docs.directus.io/extensions/creating-extensions.html).\nMost likely you'd want to create a hook extension but `directus-extension-prometheus` should be available from any api extension.\n\nUsage:\n\n```javascript\nconst {globalRegister} = require('directus-extension-prometheus');\nconst {Counter} = require(\"prom-client\");\n\nmodule.exports = {\n    default: ({init}) => {\n        // here I use the app.before hook to register this metric as soon as the app starts\n        init('app.before', () => {\n            const count = new Counter({\n                registers: [globalRegister],\n                name: 'timey_wimey',\n                help: 'People assume that time is a strict progression from cause to effect, but actually from a non-linear, non-subjective viewpoint, it’s more like a big ball of wibbly-wobbly, timey-wimey stuff.'\n            });\n\n            // increment the counter every second\n            setInterval(() => {\n                count.inc();\n            }, 1000);\n        });\n    }\n}\n```","hook","2024-02-28T07:28:58.388Z","^9.26.0",[],0,"MIT",{"username":18,"verified":8,"id":19,"github_username":20,"github_name":20,"github_blog":20,"github_bio":20,"github_location":20,"github_company":20,"github_avatar_url":20},"chappio","0b1b3462-2165-47db-b812-74dde57114d5",null,[22,33,41,49,57,65,74,82],{"version":23,"package":9,"publisher":19,"type":11,"host_version":24,"publish_date":25,"verified":8,"id":26,"url_repository":20,"url_homepage":27,"url_bugs":20,"file_count":28,"unpacked_size":29,"sandbox":8,"sandbox_requested_scopes":20,"license":16,"bundled":30,"maintainers":31},"1.1.0","^9.22.4","2023-02-11T11:17:47.950Z","1897734e-e720-4e30-88e3-3d21d852811e","https://github.com/chappio/directus-extension-prometheus",6,12334,[],[32],9216,{"version":34,"package":9,"publisher":19,"type":11,"host_version":13,"publish_date":12,"verified":8,"id":35,"url_repository":20,"url_homepage":27,"url_bugs":20,"file_count":36,"unpacked_size":37,"sandbox":8,"sandbox_requested_scopes":20,"license":16,"bundled":38,"maintainers":39},"1.4.0","190cb59f-ce3f-4574-8c5b-96065c808e26",5,13078,[],[40],10410,{"version":42,"package":9,"publisher":19,"type":11,"host_version":24,"publish_date":43,"verified":8,"id":44,"url_repository":20,"url_homepage":27,"url_bugs":20,"file_count":28,"unpacked_size":45,"sandbox":8,"sandbox_requested_scopes":20,"license":16,"bundled":46,"maintainers":47},"1.1.1","2023-02-11T11:28:12.884Z","35814b57-cb00-42af-8409-6f8149162fdd",42783,[],[48],9217,{"version":50,"package":9,"publisher":19,"type":11,"host_version":24,"publish_date":51,"verified":8,"id":52,"url_repository":20,"url_homepage":27,"url_bugs":20,"file_count":36,"unpacked_size":53,"sandbox":8,"sandbox_requested_scopes":20,"license":16,"bundled":54,"maintainers":55},"1.0.0","2023-02-08T20:30:13.591Z","429c38d0-ff46-4247-a518-b1c43d93209f",12127,[],[56],9214,{"version":58,"package":9,"publisher":19,"type":11,"host_version":24,"publish_date":59,"verified":8,"id":60,"url_repository":20,"url_homepage":27,"url_bugs":20,"file_count":28,"unpacked_size":61,"sandbox":8,"sandbox_requested_scopes":20,"license":16,"bundled":62,"maintainers":63},"1.2.1","2023-02-22T21:28:09.523Z","562bdfe9-1658-4752-ba32-3f4b65a31707",42837,[],[64],9219,{"version":66,"package":9,"publisher":19,"type":11,"host_version":24,"publish_date":67,"verified":8,"id":68,"url_repository":20,"url_homepage":27,"url_bugs":20,"file_count":69,"unpacked_size":70,"sandbox":8,"sandbox_requested_scopes":20,"license":16,"bundled":71,"maintainers":72},"1.0.1","2023-02-08T20:46:52.909Z","8cd9960e-61fa-4a67-a9ce-4fbe53133693",3,40652,[],[73],9215,{"version":75,"package":9,"publisher":19,"type":11,"host_version":24,"publish_date":76,"verified":8,"id":77,"url_repository":20,"url_homepage":27,"url_bugs":20,"file_count":28,"unpacked_size":78,"sandbox":8,"sandbox_requested_scopes":20,"license":16,"bundled":79,"maintainers":80},"1.2.0","2023-02-22T20:21:37.645Z","aab17b4f-04c6-4ef6-bcc7-116912fff2d6",42825,[],[81],9218,{"version":83,"package":9,"publisher":19,"type":11,"host_version":13,"publish_date":84,"verified":8,"id":85,"url_repository":20,"url_homepage":27,"url_bugs":20,"file_count":36,"unpacked_size":86,"sandbox":8,"sandbox_requested_scopes":20,"license":16,"bundled":87,"maintainers":88},"1.3.0","2023-04-26T14:33:14.073Z","cba98e6e-e64f-481a-919b-9f9f8cd9a6b1",11915,[],[89],9220,"Prometheus","\u003Ch1>Directus Extension: Prometheus\u003C/h1>\n\u003Cp>Expose directus metrics to your prometheus instance.\u003C/p>\n\u003Cp>No configuration required.\u003C/p>\n\u003Ch2>Install into your project\u003C/h2>\n\u003Cpre>\u003Ccode class=\"language-bash\">npm install directus-extension-prometheus\n\u003C/code>\u003C/pre>\n\u003Cp>Now, when you launch your directus instance, you will receive\nmetrics on the /metrics endpoint.\u003C/p>\n\u003Ch2>Optional Configuration\u003C/h2>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Option\u003C/th>\n\u003Cth>Description\u003C/th>\n\u003Cth>Default\u003C/th>\n\u003C/tr>\n\u003C/thead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>\u003Ccode>PROMETHEUS_METRICS_ENDPOINT\u003C/code>\u003C/td>\n\u003Ctd>The endpoint on which the prometheus metrics are exposed.\u003C/td>\n\u003Ctd>\u003Ccode>\"/metrics\"\u003C/code>\u003C/td>\n\u003C/tr>\n\u003C/tbody>\n\u003C/table>\n\u003Ch2>Default Metrics\u003C/h2>\n\u003Cp>Here is an example of the types of metrics exposed by this extension:\u003C/p>\n\u003Cpre>\u003Ccode># HELP directus_request_count The total number of http requests\n# TYPE directus_request_count counter\ndirectus_request_count{status=\"200\",method=\"GET\"} 160\ndirectus_request_count{status=\"200\",method=\"POST\"} 2\ndirectus_request_count{status=\"304\",method=\"GET\"} 12\ndirectus_request_count{status=\"204\",method=\"PATCH\"} 5\n\n# HELP directus_request_duration_seconds The total duration of http requests\n# TYPE directus_request_duration_seconds histogram\ndirectus_request_duration_seconds_bucket{le=\"0.005\",method=\"GET\",status=\"200\"} 10\ndirectus_request_duration_seconds_bucket{le=\"0.01\",method=\"GET\",status=\"200\"} 57\ndirectus_request_duration_seconds_bucket{le=\"0.025\",method=\"GET\",status=\"200\"} 141\ndirectus_request_duration_seconds_bucket{le=\"0.05\",method=\"GET\",status=\"200\"} 158\ndirectus_request_duration_seconds_bucket{le=\"0.1\",method=\"GET\",status=\"200\"} 160\ndirectus_request_duration_seconds_bucket{le=\"0.25\",method=\"GET\",status=\"200\"} 160\ndirectus_request_duration_seconds_bucket{le=\"0.5\",method=\"GET\",status=\"200\"} 160\ndirectus_request_duration_seconds_bucket{le=\"1\",method=\"GET\",status=\"200\"} 160\ndirectus_request_duration_seconds_bucket{le=\"2.5\",method=\"GET\",status=\"200\"} 160\ndirectus_request_duration_seconds_bucket{le=\"5\",method=\"GET\",status=\"200\"} 160\ndirectus_request_duration_seconds_bucket{le=\"10\",method=\"GET\",status=\"200\"} 160\ndirectus_request_duration_seconds_bucket{le=\"+Inf\",method=\"GET\",status=\"200\"} 160\ndirectus_request_duration_seconds_sum{method=\"GET\",status=\"200\"} 2.239873104999999\ndirectus_request_duration_seconds_count{method=\"GET\",status=\"200\"} 160\ndirectus_request_duration_seconds_bucket{le=\"0.005\",method=\"POST\",status=\"200\"} 0\ndirectus_request_duration_seconds_bucket{le=\"0.01\",method=\"POST\",status=\"200\"} 0\ndirectus_request_duration_seconds_bucket{le=\"0.025\",method=\"POST\",status=\"200\"} 1\ndirectus_request_duration_seconds_bucket{le=\"0.05\",method=\"POST\",status=\"200\"} 1\ndirectus_request_duration_seconds_bucket{le=\"0.1\",method=\"POST\",status=\"200\"} 2\ndirectus_request_duration_seconds_bucket{le=\"0.25\",method=\"POST\",status=\"200\"} 2\ndirectus_request_duration_seconds_bucket{le=\"0.5\",method=\"POST\",status=\"200\"} 2\ndirectus_request_duration_seconds_bucket{le=\"1\",method=\"POST\",status=\"200\"} 2\ndirectus_request_duration_seconds_bucket{le=\"2.5\",method=\"POST\",status=\"200\"} 2\ndirectus_request_duration_seconds_bucket{le=\"5\",method=\"POST\",status=\"200\"} 2\ndirectus_request_duration_seconds_bucket{le=\"10\",method=\"POST\",status=\"200\"} 2\ndirectus_request_duration_seconds_bucket{le=\"+Inf\",method=\"POST\",status=\"200\"} 2\ndirectus_request_duration_seconds_sum{method=\"POST\",status=\"200\"} 0.08861785999999999\ndirectus_request_duration_seconds_count{method=\"POST\",status=\"200\"} 2\ndirectus_request_duration_seconds_bucket{le=\"0.005\",method=\"GET\",status=\"304\"} 0\ndirectus_request_duration_seconds_bucket{le=\"0.01\",method=\"GET\",status=\"304\"} 6\ndirectus_request_duration_seconds_bucket{le=\"0.025\",method=\"GET\",status=\"304\"} 11\ndirectus_request_duration_seconds_bucket{le=\"0.05\",method=\"GET\",status=\"304\"} 12\ndirectus_request_duration_seconds_bucket{le=\"0.1\",method=\"GET\",status=\"304\"} 12\ndirectus_request_duration_seconds_bucket{le=\"0.25\",method=\"GET\",status=\"304\"} 12\ndirectus_request_duration_seconds_bucket{le=\"0.5\",method=\"GET\",status=\"304\"} 12\ndirectus_request_duration_seconds_bucket{le=\"1\",method=\"GET\",status=\"304\"} 12\ndirectus_request_duration_seconds_bucket{le=\"2.5\",method=\"GET\",status=\"304\"} 12\ndirectus_request_duration_seconds_bucket{le=\"5\",method=\"GET\",status=\"304\"} 12\ndirectus_request_duration_seconds_bucket{le=\"10\",method=\"GET\",status=\"304\"} 12\ndirectus_request_duration_seconds_bucket{le=\"+Inf\",method=\"GET\",status=\"304\"} 12\ndirectus_request_duration_seconds_sum{method=\"GET\",status=\"304\"} 0.16695966899999998\ndirectus_request_duration_seconds_count{method=\"GET\",status=\"304\"} 12\ndirectus_request_duration_seconds_bucket{le=\"0.005\",method=\"PATCH\",status=\"204\"} 0\ndirectus_request_duration_seconds_bucket{le=\"0.01\",method=\"PATCH\",status=\"204\"} 4\ndirectus_request_duration_seconds_bucket{le=\"0.025\",method=\"PATCH\",status=\"204\"} 5\ndirectus_request_duration_seconds_bucket{le=\"0.05\",method=\"PATCH\",status=\"204\"} 5\ndirectus_request_duration_seconds_bucket{le=\"0.1\",method=\"PATCH\",status=\"204\"} 5\ndirectus_request_duration_seconds_bucket{le=\"0.25\",method=\"PATCH\",status=\"204\"} 5\ndirectus_request_duration_seconds_bucket{le=\"0.5\",method=\"PATCH\",status=\"204\"} 5\ndirectus_request_duration_seconds_bucket{le=\"1\",method=\"PATCH\",status=\"204\"} 5\ndirectus_request_duration_seconds_bucket{le=\"2.5\",method=\"PATCH\",status=\"204\"} 5\ndirectus_request_duration_seconds_bucket{le=\"5\",method=\"PATCH\",status=\"204\"} 5\ndirectus_request_duration_seconds_bucket{le=\"10\",method=\"PATCH\",status=\"204\"} 5\ndirectus_request_duration_seconds_bucket{le=\"+Inf\",method=\"PATCH\",status=\"204\"} 5\ndirectus_request_duration_seconds_sum{method=\"PATCH\",status=\"204\"} 0.059318456000000006\ndirectus_request_duration_seconds_count{method=\"PATCH\",status=\"204\"} 5\n\n# HELP directus_collection_size The total number of items in each collection\n# TYPE directus_collection_size gauge\ndirectus_collection_size{collection=\"directus_activity\"} 4\ndirectus_collection_size{collection=\"directus_collections\"} 1\ndirectus_collection_size{collection=\"directus_fields\"} 1\ndirectus_collection_size{collection=\"directus_files\"} 0\ndirectus_collection_size{collection=\"directus_folders\"} 0\ndirectus_collection_size{collection=\"directus_migrations\"} 62\ndirectus_collection_size{collection=\"directus_permissions\"} 0\ndirectus_collection_size{collection=\"directus_presets\"} 0\ndirectus_collection_size{collection=\"directus_relations\"} 0\ndirectus_collection_size{collection=\"directus_revisions\"} 2\ndirectus_collection_size{collection=\"directus_roles\"} 1\ndirectus_collection_size{collection=\"directus_sessions\"} 2\ndirectus_collection_size{collection=\"directus_settings\"} 0\ndirectus_collection_size{collection=\"directus_users\"} 1\ndirectus_collection_size{collection=\"directus_webhooks\"} 0\ndirectus_collection_size{collection=\"directus_dashboards\"} 0\ndirectus_collection_size{collection=\"directus_panels\"} 0\ndirectus_collection_size{collection=\"directus_notifications\"} 0\ndirectus_collection_size{collection=\"directus_shares\"} 0\ndirectus_collection_size{collection=\"directus_flows\"} 0\ndirectus_collection_size{collection=\"directus_operations\"} 0\ndirectus_collection_size{collection=\"thing\"} 0\n\u003C/code>\u003C/pre>\n\u003Ch2>Adding Your Own Metrics\u003C/h2>\n\u003Cp>To add your own metrics, you have to \u003Ca href=\"https://docs.directus.io/extensions/creating-extensions.html\">create an extension\u003C/a>.\nMost likely you'd want to create a hook extension but \u003Ccode>directus-extension-prometheus\u003C/code> should be available from any api extension.\u003C/p>\n\u003Cp>Usage:\u003C/p>\n\u003Cpre>\u003Ccode class=\"language-javascript\">const {globalRegister} = require('directus-extension-prometheus');\nconst {Counter} = require(\"prom-client\");\n\nmodule.exports = {\n    default: ({init}) =&gt; {\n        // here I use the app.before hook to register this metric as soon as the app starts\n        init('app.before', () =&gt; {\n            const count = new Counter({\n                registers: [globalRegister],\n                name: 'timey_wimey',\n                help: 'People assume that time is a strict progression from cause to effect, but actually from a non-linear, non-subjective viewpoint, it’s more like a big ball of wibbly-wobbly, timey-wimey stuff.'\n            });\n\n            // increment the counter every second\n            setInterval(() =&gt; {\n                count.inc();\n            }, 1000);\n        });\n    }\n}\n\u003C/code>\u003C/pre>",[],{"items":94},[95,118,138,158],{"id":96,"title":97,"url":20,"page":20,"children":98},"522e608a-77b0-4333-820d-d4f44be2ade1","Solutions",[99,104,109,114],{"id":100,"title":101,"url":20,"page":102},"fcafe85a-a798-4710-9e7a-776fe413aae5","Headless CMS",{"permalink":103},"/solutions/headless-cms",{"id":105,"title":106,"url":20,"page":107},"79972923-93cf-4777-9e32-5c9b0315fc10","Backend-as-a-Service",{"permalink":108},"/solutions/backend-as-a-service",{"id":110,"title":111,"url":20,"page":112},"0fa8d0c1-7b64-4f6f-939d-d7fdb99fc407","Product Information",{"permalink":113},"/solutions/product-information-management",{"id":115,"title":116,"url":117,"page":20},"63946d54-6052-4780-8ff4-91f5a9931dcc","100+ Things to Build","https://directus.io/blog/100-tools-apps-and-platforms-you-can-build-with-directus",{"id":119,"title":120,"url":20,"page":20,"children":121},"8ab4f9b1-f3e2-44d6-919b-011d91fe072f","Resources",[122,126,130,134],{"id":123,"title":124,"url":125,"page":20},"f951fb84-8777-4b84-9e91-996fe9d25483","Documentation","https://docs.directus.io",{"id":127,"title":128,"url":129,"page":20},"366febc7-a538-4c08-a326-e6204957f1e3","Guides","https://docs.directus.io/guides/",{"id":131,"title":132,"url":133,"page":20},"aeb9128e-1c5f-417f-863c-2449416433cd","Community","https://directus.chat",{"id":135,"title":136,"url":137,"page":20},"da1c2ed8-0a77-49b0-a903-49c56cb07de5","Release Notes","https://github.com/directus/directus/releases",{"id":139,"title":140,"url":20,"page":20,"children":141},"d61fae8c-7502-494a-822f-19ecff3d0256","Support",[142,146,150,154],{"id":143,"title":144,"url":145,"page":20},"8c43c781-7ebd-475f-a931-747e293c0a88","Issue Tracker","https://github.com/directus/directus/issues",{"id":147,"title":148,"url":149,"page":20},"d77bb78e-cf7b-4e01-932a-514414ba49d3","Feature Requests","https://github.com/directus/directus/discussions?discussions_q=is:open+sort:top",{"id":151,"title":152,"url":153,"page":20},"4346be2b-2c53-476e-b53b-becacec626a6","Community Chat","https://discord.com/channels/725371605378924594/741317677397704757",{"id":155,"title":156,"url":157,"page":20},"26c115d2-49f7-4edc-935e-d37d427fb89d","Cloud Dashboard","https://directus.cloud",{"id":159,"title":160,"url":20,"page":20,"children":161},"49141403-4f20-44ac-8453-25ace1265812","Organization",[162,167,173,177],{"id":163,"title":164,"url":165,"page":166},"1f36ea92-8a5e-47c8-914c-9822a8b9538a","About","/about",{"permalink":165},{"id":168,"title":169,"url":170,"page":171},"b84bf525-5471-4b14-a93c-225f6c386005","Careers","#",{"permalink":172},"/careers",{"id":174,"title":175,"url":176,"page":20},"86aabc3a-433d-434b-9efa-ad1d34be0a34","Brand Assets","https://drive.google.com/drive/folders/1lBOTba4RaA5ikqOn8Ewo4RYzD0XcymG9?usp=sharing",{"id":178,"title":179,"url":20,"page":180},"8d2fa1e3-198e-4405-81e1-2ceb858bc237","Contact",{"permalink":181},"/contact",{"items":183},[184,190,196,202],{"id":185,"title":186,"url":20,"page":187,"children":189},"8a1b7bfa-429d-4ffc-a650-2a5fdcf356da","Cloud Policies",{"permalink":188},"/cloud-policies",[],{"id":191,"title":192,"url":170,"page":193,"children":195},"bea848ef-828f-4306-8017-6b00ec5d4a0c","License",{"permalink":194},"/bsl",[],{"id":197,"title":198,"url":170,"page":199,"children":201},"4e914f47-4bee-42b7-b445-3119ee4196ef","Terms",{"permalink":200},"/terms",[],{"id":203,"title":204,"url":170,"page":205,"children":207},"ea69eda6-d317-4981-8421-fcabb1826bfd","Privacy",{"permalink":206},"/privacy",[],{"items":209},[210,272,328,333,340],{"id":211,"title":212,"url":20,"callout":213,"callout_title":214,"children_title":215,"page":20,"children":216},"62c04c6c-5793-4702-8ed1-73dd563fd605","Product","8f849cd0-a47b-4e32-bb19-b478973c90f7","Project Showcase","Use Cases and Features",[217,223,229,236,241,249,257,265],{"id":218,"title":101,"url":219,"description":220,"image":20,"icon":221,"page":222},"e7d7d5ed-89b1-4455-8b4a-8ae92c70e3a0","/solutions/headless-cms/","Manage and deliver content with ease","code_blocks",{"permalink":103},{"id":224,"title":106,"url":225,"description":226,"image":20,"icon":227,"page":228},"60bdefd9-95e6-45a3-9f81-4748d07c59d3","/solutions/backend-as-a-service/","Build and ship applications faster","speed",{"permalink":108},{"id":230,"title":231,"url":232,"description":233,"image":20,"icon":234,"page":235},"5f9aebeb-4f89-445e-9850-5b1261a2743c","Headless Commerce","/solutions/product-information-management/","A single source of truth for products","shopping_cart_checkout",{"permalink":113},{"id":237,"title":238,"url":117,"description":239,"image":20,"icon":240,"page":20},"49e46134-80be-470e-8c73-afb1417fa9b6","100+ More Use Cases","Build anything (or everything)","lightbulb",{"id":242,"title":243,"url":244,"description":245,"image":20,"icon":246,"page":247},"a589ac77-a5ce-45c5-a054-e43111e19158","Instant APIs","/products/connect/","Connect a database, get REST + GraphQL APIs","api",{"permalink":248},"/toolkit/connect",{"id":250,"title":251,"url":252,"description":253,"image":20,"icon":254,"page":255},"4a0f129a-c546-4493-b0a9-306e51692e90","Granular Policy-Based Auth","/products/auth/","Provide secure, autonomous data access","lock_person",{"permalink":256},"/toolkit/auth",{"id":258,"title":259,"url":260,"description":261,"image":20,"icon":262,"page":263},"f9250f2c-93a4-4108-80db-011bbe391ecf","Visual Automation Builder","/products/automate/","Automate content and data workflows with ease","build",{"permalink":264},"/toolkit/automate",{"id":266,"title":267,"url":20,"description":268,"image":20,"icon":269,"page":270},"f1ae4e40-5b05-42a4-9cd3-33dda35cc939","50+ More Features","Get everything you need out-of-the-box","auto_fix",{"permalink":271},"/features",{"id":273,"title":120,"url":20,"callout":274,"callout_title":275,"children_title":276,"page":20,"children":277},"2f6ad0d1-6dd3-4f17-b5c8-9f2abf71409a","dfd79d2b-7af5-4cdb-aa94-3f73de97ebd8","Watch Directus TV","Learn More",[278,285,292,298,305,311,317,322],{"id":279,"title":280,"url":281,"description":282,"image":20,"icon":283,"page":284},"0a3bf9f5-1ef2-43f4-bc09-7ff7488241c5","Blog","/blog","Read our latest articles and guides","library_books",{"permalink":281},{"id":286,"title":287,"url":170,"description":288,"image":20,"icon":289,"page":290},"165e3dc2-e51b-4456-8382-99c5775b0412","Case Studies","Case studies and success stories","magic_button",{"permalink":291},"/case-studies",{"id":293,"title":294,"url":295,"description":296,"image":20,"icon":297,"page":20},"5ae324b6-bf44-4c21-95ad-e6dc0c1c1f40","Community Forum","https://community.directus.io/","Questions and conversations","comment",{"id":299,"title":300,"url":170,"description":301,"image":20,"icon":302,"page":303},"b1db03f0-e537-490e-8c0f-c61c401d1024","Agency Directory","Browse our list of agency partners ","handshake",{"permalink":304},"/agency-directory",{"id":306,"title":307,"url":165,"description":308,"image":20,"icon":309,"page":310},"991731c8-eb40-4eec-85a5-6e977bcd7ec9","About Us","Learn more about Directus and the team","supervised_user_circle",{"permalink":165},{"id":312,"title":313,"url":314,"description":315,"image":20,"icon":316,"page":20},"52aebf38-b3ad-4a27-807d-ce52398cd509","Wall of Love","https://testimonial.to/directus/all","See what others are saying about us","heart_plus",{"id":318,"title":179,"url":170,"description":319,"image":20,"icon":320,"page":321},"a86eca65-d5ae-4263-b7d9-4f1a1c50a0b1","Have a general inquiry or question for us?","mark_email_unread",{"permalink":181},{"id":323,"title":140,"url":20,"description":324,"image":20,"icon":325,"page":326},"28225825-8d41-4809-9032-192fbf5c6e5d","Reach out to Directus support","support",{"permalink":327},"/support",{"id":329,"title":330,"url":331,"callout":20,"callout_title":20,"children_title":20,"page":20,"children":332},"a3f1275d-b088-4b11-99bf-143fcbf39104","Developers","/docs",[],{"id":334,"title":335,"url":336,"callout":20,"callout_title":20,"children_title":20,"page":337,"children":339},"fae8fded-d2e2-468e-a68b-82abec7a7225","Enterprise","/solutions/enterprise/",{"permalink":338},"/solutions/enterprise",[],{"id":341,"title":342,"url":343,"callout":20,"callout_title":20,"children_title":20,"page":344,"children":346},"5c5e2fbc-49fd-4e41-a71e-e4f8db2b00cf","Pricing","/pricing/",{"permalink":345},"/pricing/self-hosted",[],{"header_cta_buttons":348},"74634853-196b-4ce3-b256-4534c054838f",{"id":350,"node_id":351,"name":352,"full_name":353,"private":8,"owner":354,"html_url":371,"description":372,"fork":8,"url":373,"forks_url":374,"keys_url":375,"collaborators_url":376,"teams_url":377,"hooks_url":378,"issue_events_url":379,"events_url":380,"assignees_url":381,"branches_url":382,"tags_url":383,"blobs_url":384,"git_tags_url":385,"git_refs_url":386,"trees_url":387,"statuses_url":388,"languages_url":389,"stargazers_url":390,"contributors_url":391,"subscribers_url":392,"subscription_url":393,"commits_url":394,"git_commits_url":395,"comments_url":396,"issue_comment_url":397,"contents_url":398,"compare_url":399,"merges_url":400,"archive_url":401,"downloads_url":402,"issues_url":403,"pulls_url":404,"milestones_url":405,"notifications_url":406,"labels_url":407,"releases_url":408,"deployments_url":409,"created_at":410,"updated_at":411,"pushed_at":412,"git_url":413,"ssh_url":414,"clone_url":415,"svn_url":371,"homepage":416,"size":417,"stargazers_count":418,"watchers_count":418,"language":419,"has_issues":420,"has_projects":420,"has_downloads":420,"has_wiki":8,"has_pages":8,"has_discussions":420,"forks_count":421,"mirror_url":20,"archived":8,"disabled":8,"open_issues_count":422,"license":423,"allow_forking":420,"is_template":8,"web_commit_signoff_required":8,"has_pull_requests":420,"pull_request_creation_policy":428,"topics":429,"visibility":370,"forks":421,"open_issues":422,"watchers":418,"default_branch":448,"temp_clone_token":20,"custom_properties":449,"organization":450,"network_count":421,"subscribers_count":451},7122594,"MDEwOlJlcG9zaXRvcnk3MTIyNTk0","directus","directus/directus",{"login":352,"id":355,"node_id":356,"avatar_url":357,"gravatar_id":358,"url":359,"html_url":360,"followers_url":361,"following_url":362,"gists_url":363,"starred_url":364,"subscriptions_url":365,"organizations_url":366,"repos_url":367,"events_url":368,"received_events_url":369,"type":160,"user_view_type":370,"site_admin":8},15967950,"MDEyOk9yZ2FuaXphdGlvbjE1OTY3OTUw","https://avatars.githubusercontent.com/u/15967950?v=4","","https://api.github.com/users/directus","https://github.com/directus","https://api.github.com/users/directus/followers","https://api.github.com/users/directus/following{/other_user}","https://api.github.com/users/directus/gists{/gist_id}","https://api.github.com/users/directus/starred{/owner}{/repo}","https://api.github.com/users/directus/subscriptions","https://api.github.com/users/directus/orgs","https://api.github.com/users/directus/repos","https://api.github.com/users/directus/events{/privacy}","https://api.github.com/users/directus/received_events","public","https://github.com/directus/directus","The flexible backend for all your projects 🐰 Turn your DB into a headless CMS, admin panels, or apps with a custom UI, instant APIs, auth & more.","https://api.github.com/repos/directus/directus","https://api.github.com/repos/directus/directus/forks","https://api.github.com/repos/directus/directus/keys{/key_id}","https://api.github.com/repos/directus/directus/collaborators{/collaborator}","https://api.github.com/repos/directus/directus/teams","https://api.github.com/repos/directus/directus/hooks","https://api.github.com/repos/directus/directus/issues/events{/number}","https://api.github.com/repos/directus/directus/events","https://api.github.com/repos/directus/directus/assignees{/user}","https://api.github.com/repos/directus/directus/branches{/branch}","https://api.github.com/repos/directus/directus/tags","https://api.github.com/repos/directus/directus/git/blobs{/sha}","https://api.github.com/repos/directus/directus/git/tags{/sha}","https://api.github.com/repos/directus/directus/git/refs{/sha}","https://api.github.com/repos/directus/directus/git/trees{/sha}","https://api.github.com/repos/directus/directus/statuses/{sha}","https://api.github.com/repos/directus/directus/languages","https://api.github.com/repos/directus/directus/stargazers","https://api.github.com/repos/directus/directus/contributors","https://api.github.com/repos/directus/directus/subscribers","https://api.github.com/repos/directus/directus/subscription","https://api.github.com/repos/directus/directus/commits{/sha}","https://api.github.com/repos/directus/directus/git/commits{/sha}","https://api.github.com/repos/directus/directus/comments{/number}","https://api.github.com/repos/directus/directus/issues/comments{/number}","https://api.github.com/repos/directus/directus/contents/{+path}","https://api.github.com/repos/directus/directus/compare/{base}...{head}","https://api.github.com/repos/directus/directus/merges","https://api.github.com/repos/directus/directus/{archive_format}{/ref}","https://api.github.com/repos/directus/directus/downloads","https://api.github.com/repos/directus/directus/issues{/number}","https://api.github.com/repos/directus/directus/pulls{/number}","https://api.github.com/repos/directus/directus/milestones{/number}","https://api.github.com/repos/directus/directus/notifications{?since,all,participating}","https://api.github.com/repos/directus/directus/labels{/name}","https://api.github.com/repos/directus/directus/releases{/id}","https://api.github.com/repos/directus/directus/deployments","2012-12-12T01:35:36Z","2026-04-09T08:48:17Z","2026-04-09T08:26:59Z","git://github.com/directus/directus.git","git@github.com:directus/directus.git","https://github.com/directus/directus.git","https://directus.io",439538,34728,"TypeScript",true,4683,383,{"key":424,"name":425,"spdx_id":426,"url":20,"node_id":427},"other","Other","NOASSERTION","MDc6TGljZW5zZTA=","all",[246,430,431,432,433,434,352,435,436,437,438,439,440,441,442,443,444,445,446,447],"app","cms","composable","data-visualization","database","graphql","headless-cms","javascript","mariadb","mssql","mysql","no-code","node","postgresql","sql","sqlite","typescript","vue","main",{},{"login":352,"id":355,"node_id":356,"avatar_url":357,"gravatar_id":358,"url":359,"html_url":360,"followers_url":361,"following_url":362,"gists_url":363,"starred_url":364,"subscriptions_url":365,"organizations_url":366,"repos_url":367,"events_url":368,"received_events_url":369,"type":160,"user_view_type":370,"site_admin":8},327,[453],{"id":454,"icon":455,"content":456,"link":457,"include_paths":20,"exclude_paths":20},"812bf73d-ebfb-4246-9538-937a09a0c795","connected_tv","Learn more about our native MCP","https://directus.io/mcp",{"id":274,"title":459,"description":460,"image":461,"external_url":462,"icon":455,"badge":463,"page":20,"resource":20},"Directus TV","Go down the rabbit hole with hours of original video content from our team. ","ab70faf5-fc28-4608-a7e7-74fd4f020a9d","/tv","Video",{"id":213,"title":465,"description":466,"image":467,"external_url":20,"icon":20,"badge":20,"page":468,"resource":20},"Built With Directus","See what everyone's been building with Directus","e658de72-fb08-4ed2-8029-215c712c789e",{"permalink":469},"/built-with-directus",{"alignment":471,"style":472,"experiment_enabled":8,"experiment":20,"experiment_variant":473,"buttons":476,"variants":486},"center","default",{"id":474,"key":475,"experiment":20},"8c4951b4-a6f9-4c06-9f71-fd39a3bdad1e","control",[477,480,483],{"id":478,"block_button_id":479},15,"358b0659-1f05-4427-bd1c-4bc03a43c182",{"id":481,"block_button_id":482},16,"9df3f40e-6272-4ec6-a0d7-cc29265e087c",{"id":484,"block_button_id":485},232,"1b444c23-b593-4391-9410-4ca5d2c7a7cb",[487],{"id":488,"alignment":471,"style":472,"buttons":489,"experiment_variant":496},"e1885d45-3119-41a3-8294-3cd796ea6f02",[490,493],{"id":491,"block_button_id":492},203,"ade37731-147d-48c4-864a-cec007576362",{"id":494,"block_button_id":495},202,"1cb4e89f-f7de-4b46-bbb8-080191517a72",{"id":497,"key":498},"66d2be4f-2492-4944-8060-039c15515918","variant",{"id":479,"external_url":20,"label":500,"color":501,"outline":8,"icon":20,"size":502,"target":503,"ph_event":20,"page":504,"resource":20},"Book a Demo","primary","medium","_self",{"permalink":505},"/demo",{"id":482,"external_url":507,"label":508,"color":509,"outline":8,"icon":20,"size":502,"target":503,"ph_event":20,"page":20,"resource":20},"https://directus.cloud/account/register","Get Started","secondary",{"id":485,"external_url":157,"label":511,"color":509,"outline":420,"icon":512,"size":502,"target":503,"ph_event":20,"page":20,"resource":20},"Log In","arrow_forward"]