{"action":"created","issue":{"url":"https://api.github.com/repos/davehorton/drachtio-server/issues/58","repository_url":"https://api.github.com/repos/davehorton/drachtio-server","labels_url":"https://api.github.com/repos/davehorton/drachtio-server/issues/58/labels{/name}","comments_url":"https://api.github.com/repos/davehorton/drachtio-server/issues/58/comments","events_url":"https://api.github.com/repos/davehorton/drachtio-server/issues/58/events","html_url":"https://github.com/davehorton/drachtio-server/issues/58","id":381116623,"node_id":"MDU6SXNzdWUzODExMTY2MjM=","number":58,"title":"Heartbeat metrics - logfile/syslog alternative?","user":{"login":"garnatha","id":38657785,"node_id":"MDQ6VXNlcjM4NjU3Nzg1","avatar_url":"https://avatars3.githubusercontent.com/u/38657785?v=4","gravatar_id":"","url":"https://api.github.com/users/garnatha","html_url":"https://github.com/garnatha","followers_url":"https://api.github.com/users/garnatha/followers","following_url":"https://api.github.com/users/garnatha/following{/other_user}","gists_url":"https://api.github.com/users/garnatha/gists{/gist_id}","starred_url":"https://api.github.com/users/garnatha/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/garnatha/subscriptions","organizations_url":"https://api.github.com/users/garnatha/orgs","repos_url":"https://api.github.com/users/garnatha/repos","events_url":"https://api.github.com/users/garnatha/events{/privacy}","received_events_url":"https://api.github.com/users/garnatha/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"davehorton","id":1884973,"node_id":"MDQ6VXNlcjE4ODQ5NzM=","avatar_url":"https://avatars2.githubusercontent.com/u/1884973?v=4","gravatar_id":"","url":"https://api.github.com/users/davehorton","html_url":"https://github.com/davehorton","followers_url":"https://api.github.com/users/davehorton/followers","following_url":"https://api.github.com/users/davehorton/following{/other_user}","gists_url":"https://api.github.com/users/davehorton/gists{/gist_id}","starred_url":"https://api.github.com/users/davehorton/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davehorton/subscriptions","organizations_url":"https://api.github.com/users/davehorton/orgs","repos_url":"https://api.github.com/users/davehorton/repos","events_url":"https://api.github.com/users/davehorton/events{/privacy}","received_events_url":"https://api.github.com/users/davehorton/received_events","type":"User","site_admin":false},"assignees":[{"login":"davehorton","id":1884973,"node_id":"MDQ6VXNlcjE4ODQ5NzM=","avatar_url":"https://avatars2.githubusercontent.com/u/1884973?v=4","gravatar_id":"","url":"https://api.github.com/users/davehorton","html_url":"https://github.com/davehorton","followers_url":"https://api.github.com/users/davehorton/followers","following_url":"https://api.github.com/users/davehorton/following{/other_user}","gists_url":"https://api.github.com/users/davehorton/gists{/gist_id}","starred_url":"https://api.github.com/users/davehorton/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davehorton/subscriptions","organizations_url":"https://api.github.com/users/davehorton/orgs","repos_url":"https://api.github.com/users/davehorton/repos","events_url":"https://api.github.com/users/davehorton/events{/privacy}","received_events_url":"https://api.github.com/users/davehorton/received_events","type":"User","site_admin":false}],"milestone":null,"comments":1,"created_at":"2018-11-15T11:22:52Z","updated_at":"2018-11-20T11:49:23Z","closed_at":null,"author_association":"NONE","body":"Hi Dave - have you considered providing an alternative method for data/metric extraction from Drachtio other than log/syslog/console? The current format of the 30 second heartbeat requires some pretty nasty log extracting and parsing, a storing of value counters (to obtain metrics that have increased since last heartbeat) and could be prone to errors based on the file entry formats. \r\n\r\nWhat would be very useful is the ability to connect to the/an admin port and pull or subscribe to events on demand. The logic here is that one could connect to Drachtio, extract data and process accordingly in one single application rather than having to send data to log/syslog, filter, scan, parse and then have a process handle the scrubbed info. \r\n\r\nThe data in the heartbeat is fantastic! Would just love a simpler way to break it down. \r\nHaving the data dumped as a single json blob in a dedicated file would also be very nice to work with! \r\n\r\nMany thanks\r\n\r\nGar"},"comment":{"url":"https://api.github.com/repos/davehorton/drachtio-server/issues/comments/440246047","html_url":"https://github.com/davehorton/drachtio-server/issues/58#issuecomment-440246047","issue_url":"https://api.github.com/repos/davehorton/drachtio-server/issues/58","id":440246047,"node_id":"MDEyOklzc3VlQ29tbWVudDQ0MDI0NjA0Nw==","user":{"login":"garnatha","id":38657785,"node_id":"MDQ6VXNlcjM4NjU3Nzg1","avatar_url":"https://avatars3.githubusercontent.com/u/38657785?v=4","gravatar_id":"","url":"https://api.github.com/users/garnatha","html_url":"https://github.com/garnatha","followers_url":"https://api.github.com/users/garnatha/followers","following_url":"https://api.github.com/users/garnatha/following{/other_user}","gists_url":"https://api.github.com/users/garnatha/gists{/gist_id}","starred_url":"https://api.github.com/users/garnatha/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/garnatha/subscriptions","organizations_url":"https://api.github.com/users/garnatha/orgs","repos_url":"https://api.github.com/users/garnatha/repos","events_url":"https://api.github.com/users/garnatha/events{/privacy}","received_events_url":"https://api.github.com/users/garnatha/received_events","type":"User","site_admin":false},"created_at":"2018-11-20T11:49:23Z","updated_at":"2018-11-20T11:49:23Z","author_association":"NONE","body":"Just some further observations that would be worth taking into consideration since I've been working more around this the past few days...\r\n\r\n- The Watchdog could be simpler if it dumps each of the 69 metrics at the same time rather than  individual log entries. Reason for this is that it can be error prone when receiving & processing data in bursts. \r\n\r\n- If the watchdog was providing incremental metric values since last heartbeat rather than total counters since startup that would be much more useful. With the fact that each metric is a counter of data since the process started its an extra step to take the watchdog reported data, compare it to an on-box stored cache and subtract the previous cached value before doing something with the actual metric. When combining these counters with the fact that each metric is posted individually results in some pretty heavy file IO performing this 69 times. \r\n\r\n- The usage of \"Timer X Queue Size\" for both SipDialogController & ClientController makes it difficult to separate the metrics since they are identically named. The only help is a few log entries back the logging of the section title SipDiaglog or Client which makes handling these metrics very challenging. Naming them differently would solve this problem - ideally something like a prefix:\r\n\r\nClientTimerAQueueSize\r\nSipDialogTimeAQueueSize"}}
{"actor":{"display_login":"garnatha"}}