devinbost opened a new pull request #6105: [pulsar-function-go] (WIP) Add statistics and Prometheus to Go Function instances for production readiness URL: https://github.com/apache/pulsar/pull/6105 Master issue: #4175 This PR also depends on the code in #6031 . This PR is to add statistics (to enable calls to get function status, get function stats, and get other metrics) for Pulsar Admin usage and for sending to Prometheus. Because Prometheus Go did not support some of the ways that we depended on to interact with Prometheus in the Python and Java Pulsar code, this change was more significant and diverges slightly from the approaches used for the other parts of the Pulsar codebase. However, based on feedback from the core maintainers of Prometheus, there is a risk that they may deprecate the other ways that we're using their library. So, the approaches used in this PR should serve as the new standard. For more information about the issues with Prometheus, please see the discussion here: https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!topic/prometheus-users/NpkERPC17H4 ### Motivation The current implementation of Go functions in Pulsar is missing key statistical information and other information that is critical for determining the health and reliability of Go functions in production. This PR solves that problem. ### Does this pull request potentially affect one of the following parts: - Dependencies (does it add or upgrade a dependency): (yes) - The public API: (sort of) It adds functionality that didn't previously exist for Go functions. - The schema: (no) - The default values of configurations: (no) - The wire protocol: (no) - The rest endpoints: (sort of) It adds functionality that didn't previously exist for Go functions. - The admin cli options: (sort of) It adds functionality that didn't previously exist for Go functions. - Anything that affects deployment: (possibly, though unlikely, due to new dependencies) ### Documentation - Does this pull request introduce a new feature? (sort of) Prometheus metrics were changed slightly. We needed to replace many of the Prometheus Counters with Gauges due to limitations in the Prometheus Go client. - If yes, how is the feature documented? (not documented) - If a feature is not applicable for documentation, explain why? More documentation will need to be created as Go functions become more production-ready.
---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected] With regards, Apache Git Services
