{"action":"created","issue":{"url":"https://api.github.com/repos/pootzko/InfluxData.Net/issues/30","repository_url":"https://api.github.com/repos/pootzko/InfluxData.Net","labels_url":"https://api.github.com/repos/pootzko/InfluxData.Net/issues/30/labels{/name}","comments_url":"https://api.github.com/repos/pootzko/InfluxData.Net/issues/30/comments","events_url":"https://api.github.com/repos/pootzko/InfluxData.Net/issues/30/events","html_url":"https://github.com/pootzko/InfluxData.Net/issues/30","id":191688972,"number":30,"title":"Add new queries to ClientSerieModule for accessing tag and field keys/values for a measurement","user":{"login":"meverett","id":171108,"avatar_url":"https://avatars.githubusercontent.com/u/171108?v=3","gravatar_id":"","url":"https://api.github.com/users/meverett","html_url":"https://github.com/meverett","followers_url":"https://api.github.com/users/meverett/followers","following_url":"https://api.github.com/users/meverett/following{/other_user}","gists_url":"https://api.github.com/users/meverett/gists{/gist_id}","starred_url":"https://api.github.com/users/meverett/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/meverett/subscriptions","organizations_url":"https://api.github.com/users/meverett/orgs","repos_url":"https://api.github.com/users/meverett/repos","events_url":"https://api.github.com/users/meverett/events{/privacy}","received_events_url":"https://api.github.com/users/meverett/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2016-11-25T12:10:22Z","updated_at":"2016-11-27T11:46:02Z","closed_at":null,"body":"At present it is possible to query measurement tag keys, tag values, and field keys by just writing the following raw queries and executing them:\r\n\r\n`SHOW TAG KEYS FROM \"measurement\"`\r\n\r\n`SHOW TAG VALUES FROM \"measurement\" WITH KEY = \"tagKey\"`\r\n\r\n`SHOW FIELD KEYS FROM \"measurement\"`\r\n\r\nHowever it would be a lot more convenient if this interaction was promoted to native methods on the SerieClientModule:\r\n\r\n`IEnumerable<string> GetTagKeysAsync(string dbName, string measurementName);`\r\n\r\n`IEnumerable<TagValue> GetTagValuesAsync(string dbName, string measurementName, string tagName);`\r\n\r\n`IEnumerable<FieldKey> GetFieldKeysAsync(string dbName, string measurementName);`\r\n\r\nThese methods are really useful for things such as populating values in a drop down in UI-driven applications: query tag keys -> bind to drop down -> value changed -> query tag values -> bind to list view. Otherwise this requires a bit of hard-coded response parsing every place you would want to explore these values/the schema of a measurement.\r\n\r\nI have a feature branch in my fork where I've implemented these methods and the two new needed models TagValue and FieldKey. Let me know if you'd like a pull request. My changes around fixed Diagnostics parsing and Uptime parsing are included in this branch as well.\r\n\r\nI would also like to add a UserClientModule and implement Show Users, Create User, Create Admin User, and Drop User. With these methods and the ones I've added above InfluxData.Net would implement more queries than the deprecated InfluxDB Web Admin Interface has in its Query Templates feature. These queries seem to be the last missing ones for completeness. Thoughts?\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/pootzko/InfluxData.Net/issues/comments/263117637","html_url":"https://github.com/pootzko/InfluxData.Net/issues/30#issuecomment-263117637","issue_url":"https://api.github.com/repos/pootzko/InfluxData.Net/issues/30","id":263117637,"user":{"login":"pootzko","id":535842,"avatar_url":"https://avatars.githubusercontent.com/u/535842?v=3","gravatar_id":"","url":"https://api.github.com/users/pootzko","html_url":"https://github.com/pootzko","followers_url":"https://api.github.com/users/pootzko/followers","following_url":"https://api.github.com/users/pootzko/following{/other_user}","gists_url":"https://api.github.com/users/pootzko/gists{/gist_id}","starred_url":"https://api.github.com/users/pootzko/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pootzko/subscriptions","organizations_url":"https://api.github.com/users/pootzko/orgs","repos_url":"https://api.github.com/users/pootzko/repos","events_url":"https://api.github.com/users/pootzko/events{/privacy}","received_events_url":"https://api.github.com/users/pootzko/received_events","type":"User","site_admin":false},"created_at":"2016-11-27T11:46:02Z","updated_at":"2016-11-27T11:46:02Z","body":"Hi man,\r\n\r\nfirst of all - it makes me really happy when I see someone else is willing to contribute to the lib with code, so thanks! In general - you don't have to ask if I'm willing to accept a PR, of course I am. :D A bit of planning and talking about how best to implement something like this is fine, but yes, I will happily accept PR's. \r\n\r\nThat being said - sure, make a PR and I'll merge it in. \r\n\r\nThe tags and fields, it does sound like a good idea, and I also think it would be pretty convenient. Regarding the user module, I was thinking of adding that sometime in the future, but I never did because I didn't have the need for it, so yes, that sounds great as well. \r\n\r\nI played last night a bit with implementing batched writes, I'll wrap that up today and then resolve PR's. \r\n\r\nThanks! :)"}}
{"actor":{"display_login":"pootzko"}}