ergochat / ergo

A modern IRC server (daemon/ircd) written in Go.
https://ergo.chat/
MIT License
2.21k stars 176 forks source link

feature: introduce Prometheus (#976) #2095

Closed blackheaven closed 8 months ago

slingamn commented 8 months ago

Thanks for the PR! Could you clarify the goals here? The increase in binary size (from 14 MB to 18 MB) and the large number of additional third-party dependencies pose potential difficulties.

blackheaven commented 8 months ago

I'm not really at ease with go.

I have followed the guide and it changed vendors, but I'm not sure I should have added the to git.

slingamn commented 8 months ago

Committing vendor/ to git is the correct convention in this specific repository :-)

My question is, what goals does this change serve? Are you, specifically, seeking to monitor a particular application health metric? Is Prometheus support just something you feel that Ergo should have?

My gutfeeling is that either people should use something like ncabatoff/process-exporter to monitor Ergo's health from the outside, or we should carefully evaluate the use cases for monitoring and build something that satisfies them (which may not involve bringing Prometheus inside the application core).

blackheaven commented 8 months ago

Oh, I see.

I have just provided a first implementation following your issue.

My opinion is that in the middle-term it would be great to have more business-center metrics such as:

If I might ask, what do you have in mind at the time you have created this issue?

slingamn commented 8 months ago

Sorry, I completely forgot that I had an open issue for this :-)

I think this is exactly what I had in mind when I wrote up the issue originally, but given how heavyweight it turned out to be in terms of dependencies and binary size, I'm not sure I want to go ahead with it. I'm very appreciative of your interest in the project, though! Let me know if you have needs as an Ergo operator (monitoring or otherwise) that I can work on.

blackheaven commented 8 months ago

No problem, I don't have this need for the moment.