Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yokawasa/azure-log-analytics-data-collector
Azure Log Analytics Data Collector API Client libraries
https://github.com/yokawasa/azure-log-analytics-data-collector
azure azure-log-analytics ruby
Last synced: 3 months ago
JSON representation
Azure Log Analytics Data Collector API Client libraries
- Host: GitHub
- URL: https://github.com/yokawasa/azure-log-analytics-data-collector
- Owner: yokawasa
- License: mit
- Created: 2016-12-04T06:38:42.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2020-07-19T00:32:11.000Z (over 4 years ago)
- Last Synced: 2024-09-18T16:44:05.185Z (4 months ago)
- Topics: azure, azure-log-analytics, ruby
- Language: Ruby
- Homepage:
- Size: 85 KB
- Stars: 9
- Watchers: 4
- Forks: 8
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: ChangeLog.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# azure-log-analytics-data-collector Ruby Client
[Azure Log Analytics Data Collector API](https://docs.microsoft.com/en-us/azure/azure-monitor/platform/data-collector-api) Client Libraries for Ruby. The repository was originally created for multiple programming languages, but it was refactored as a dedicated one for Ruby client. Python and PHP client libraries were moved to [azure-log-analytics-data-colloector-python](https://github.com/yokawasa/azure-log-analytics-data-collector-python) and [azure-log-analytics-data-colloector-php](https://github.com/yokawasa/azure-log-analytics-data-collector-php) respectively.
## Retry policy
The client internal leverage [rest-client] to send HTTP request to the API. The client library retries request using the rest-client on the following status code (which is [recommended action](https://docs.microsoft.com/en-us/azure/azure-monitor/platform/data-collector-api)).
* `429` - Too Many Requests
* `500` - Internal Server Error
* `503` - Service UnavailableBy default, the client library retres for a total of `3` times, sleeping `5 sec` between retries. The number of retries and sleeping time between retries can be changed with `set_retries` in the client class.
```ruby
def set_retries(max_retries, retry_sleep_period)
@max_retries = max_retries
@retry_sleep_period = retry_sleep_period
end
```## Installation
```bash
gem install azure-loganalytics-datacollector-api
```## Sample code (Ruby Client)
### Sample1 - No time_generated_field option
```ruby
require "azure/loganalytics/datacollectorapi/client"customer_id = ''
shared_key = ''
log_type = "MyCustomLog"posting_records = []
record1= {
:string => "MyText1",
:boolean => true,
:number => 100
}
record2= {
:string => "MyText2",
:boolean => false,
:number => 200
}
posting_records.push(record1)
posting_records.push(record2)client=Azure::Loganalytics::Datacollectorapi::Client::new( customer_id, shared_key)
res = client.post_data(log_type, posting_records)
puts res
puts "res code=#{res.code}"if Azure::Loganalytics::Datacollectorapi::Client.is_success(res)
puts "operation was succeeded!"
else
puts "operation was failured!"
end
```### Sample2 - With time_generated_field option
```ruby
require "azure/loganalytics/datacollectorapi/client"customer_id = ''
shared_key = ''
log_type = "MyCustomLog"posting_records = []
record1= {
:string => "MyText1",
:boolean => true,
:number => 100,
:timegen => "2017-11-23T11:13:35.576Z" # YYYY-MM-DDThh:mm:ssZ
}
record2= {
:string => "MyText2",
:boolean => false,
:number => 200,
:timegen => "2017-11-23T12:13:35.576Z" # YYYY-MM-DDThh:mm:ssZ
}
posting_records.push(record1)
posting_records.push(record2)time_generated_field = "timegen"
client=Azure::Loganalytics::Datacollectorapi::Client::new( customer_id, shared_key)
res = client.post_data(log_type, posting_records, time_generated_field)
puts res
puts "res code=#{res.code}"if Azure::Loganalytics::Datacollectorapi::Client.is_success(res)
puts "operation was succeeded!"
else
puts "operation was failured!"
end
```### Sample3 - With time_generated_field and azure_resource_id option
Supported setting azure_resource_id option from version [0.2.0](https://github.com/yokawasa/azure-log-analytics-data-collector/releases/tag/v0.2.0)
```ruby
require "azure/loganalytics/datacollectorapi/client"customer_id = ''
shared_key = ''
log_type = "MyCustomLog"posting_records = []
record1= {
:string => "MyText1",
:boolean => true,
:number => 100,
:timegen => "2017-11-23T11:13:35.576Z" # YYYY-MM-DDThh:mm:ssZ
}
record2= {
:string => "MyText2",
:boolean => false,
:number => 200,
:timegen => "2017-11-23T12:13:35.576Z" # YYYY-MM-DDThh:mm:ssZ
}
posting_records.push(record1)
posting_records.push(record2)time_generated_field = "timegen"
# Azure Resource ID
# [Azure Resource ID Format]
# /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
azure_resource_id ="/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/otherResourceGroup/providers/Microsoft.Storage/storageAccounts/examplestorage"client=Azure::Loganalytics::Datacollectorapi::Client::new( customer_id, shared_key)
res = client.post_data(log_type, posting_records, time_generated_field, azure_resource_id)
puts res
puts "res code=#{res.code}"if Azure::Loganalytics::Datacollectorapi::Client.is_success(res)
puts "operation was succeeded!"
else
puts "operation was failured!"
end
```### Sample4 - use proxy to access the API
```ruby
require "azure/loganalytics/datacollectorapi/client"...
client=Azure::Loganalytics::Datacollectorapi::Client::new( customer_id, shared_key)
# client.set_proxy() # ENV['http_proxy'] is set by default
client.set_proxy(your_proxy)
res = client.post_data(log_type, posting_records, time_generated_field)
puts res
...
```## Change log
* [Changelog](ChangeLog.md)
## Links
* https://rubygems.org/gems/azure-loganalytics-datacollector-api
* [Azure Log Analytics Data Collecotr API](https://docs.microsoft.com/en-us/azure/log-analytics/log-analytics-data-collector-api)## Development
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
## Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/yokawasa/azure-log-analytics-data-collector. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
## License
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).