You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Ideally I would have those statistics in my monitoring tool (ie Prometheus). So those information should be easely exportable from an eventual (prometheus) plugin.
Let's have some additional discussions to define how we want Core to expose stats to node operators (likely we don't what most stats exposed to public clients). Currently the issue author states logging to console, which is one option. I agree with @Zapata that a plugin may be desirable to capture data for post processing by another tool(s). Perhaps another option is to create some stats APIs.
Console/Logging
Pros: built into Core, easy to observe, realtime
Cons: limited data persistence/search-ability
Plugin
Pros: Optional if node operator wants to capture this data
Cons: Unsure if/how data output can be generalized for ingestion by multiple tools
API
Pros: built into Core, common design pattern
Cons: likely need to be authenticated APIs
Please add to my rough three Options and relevant Pro/Con. I realize it's low priority, but it may give us some valuable insights into node utilizations for improvements elsewhere in the code. Please offer examples of the stats you'd like to see.
IMO the "Cons" of "Console/Logging" can easily be overcome with appropriate post-processing tools, like an ELK stack or Prometheus/Grafana.
We could facilitate this by adding a log appender that logs JSON-formatted log messages into rotating files, for better machine-readability.
We already have a gelf_appender that sends machine-readable logs to a network endpoint. I've never tried it out, unsure what happens if the receiving endpoint is offline.
Activity
cogutvalera commentedon Jul 28, 2019
@ryanRfox I want to take this issue, attach it to me please
Zapata commentedon Aug 5, 2019
Ideally I would have those statistics in my monitoring tool (ie Prometheus). So those information should be easely exportable from an eventual (prometheus) plugin.
ryanRfox commentedon Aug 5, 2019
Let's have some additional discussions to define how we want Core to expose stats to node operators (likely we don't what most stats exposed to public clients). Currently the issue author states logging to console, which is one option. I agree with @Zapata that a plugin may be desirable to capture data for post processing by another tool(s). Perhaps another option is to create some stats APIs.
Console/Logging
Pros: built into Core, easy to observe, realtime
Cons: limited data persistence/search-ability
Plugin
Pros: Optional if node operator wants to capture this data
Cons: Unsure if/how data output can be generalized for ingestion by multiple tools
API
Pros: built into Core, common design pattern
Cons: likely need to be authenticated APIs
Please add to my rough three Options and relevant Pro/Con. I realize it's low priority, but it may give us some valuable insights into node utilizations for improvements elsewhere in the code. Please offer examples of the stats you'd like to see.
pmconrad commentedon Aug 14, 2019
IMO the "Cons" of "Console/Logging" can easily be overcome with appropriate post-processing tools, like an ELK stack or Prometheus/Grafana.
We could facilitate this by adding a log appender that logs JSON-formatted log messages into rotating files, for better machine-readability.
We already have a
gelf_appenderthat sends machine-readable logs to a network endpoint. I've never tried it out, unsure what happens if the receiving endpoint is offline.pmconrad commentedon Aug 14, 2019
Related: #1554