prometheus-api-client 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 68b5e8ad6dbe1997d62603c9513afbc071e60866
4
+ data.tar.gz: a07c99492ae8c8757ea8a9661545c877ba2f625c
5
+ SHA512:
6
+ metadata.gz: 41fa1d531d03bc368bc20827979637d51e8b802aed1d003562eddd8fd1832dda6cba03b92affb6550566b4802eec55eb313b2fa5d17bfc7cec91389d59957166
7
+ data.tar.gz: b7d3cf27b368f189bbc28136cdf1101fa9965d6916de13b263b8bf207c5783b6430281b6fd6dad53c523493c295441907585f58652758d869bf38e282de916be
data/README.md ADDED
@@ -0,0 +1,31 @@
1
+ # Prometheus Ruby Client
2
+
3
+ A Ruby library for reading Prometheus metrics API.
4
+
5
+ ## Usage
6
+
7
+ ### Overview
8
+
9
+ ```ruby
10
+ require 'prometheus/api_client'
11
+
12
+ # returns a default client
13
+ prometheus = Prometheus::ApiClient.client
14
+
15
+ prometheus.get(
16
+ "query_range",
17
+ :query => "sum(container_cpu_usage_seconds_total{container_name=\"prometheus-hgv4s\",job=\"kubernetes-nodes\"})",
18
+ :start => "2015-07-01T20:10:30.781Z",
19
+ :end => "2015-07-02T20:10:30.781Z",
20
+ :step => "120s"
21
+ )
22
+ ```
23
+
24
+ ## Tests
25
+
26
+ Install necessary development gems with `bundle install` and run tests with
27
+ rspec:
28
+
29
+ ```bash
30
+ rake
31
+ ```
data/lib/prometheus.rb ADDED
@@ -0,0 +1,5 @@
1
+ # encoding: UTF-8
2
+
3
+ # Prometheus is a generic time-series collection and computation server.
4
+ module Prometheus
5
+ end
@@ -0,0 +1,29 @@
1
+ # encoding: UTF-8
2
+
3
+ require 'faraday'
4
+
5
+ module Prometheus
6
+ # Client is a ruby implementation for a Prometheus compatible api_client.
7
+ module ApiClient
8
+ # Returns a default client object
9
+ def self.client(uri, credentials={}, options={})
10
+ @args = { url: uri.to_s, request: { open_timeout: 2, timeout: 5 } }
11
+ @args.merge!(prometheus_args(credentials, options))
12
+
13
+ Faraday.new(@args)
14
+ end
15
+
16
+ def self.prometheus_args(credentials, options)
17
+ {
18
+ proxy: options[:http_proxy_uri],
19
+ headers: { Authorization: 'Bearer ' + credentials[:token].to_s },
20
+ ssl: if options[:verify_ssl]
21
+ {
22
+ verify: options[:verify_ssl] != OpenSSL::SSL::VERIFY_NONE,
23
+ cert_store: options[:ssl_cert_store],
24
+ }
25
+ end,
26
+ }
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,7 @@
1
+ # encoding: UTF-8
2
+
3
+ module Prometheus
4
+ module ApiClient
5
+ VERSION = '0.0.1'
6
+ end
7
+ end
metadata ADDED
@@ -0,0 +1,76 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: prometheus-api-client
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Yaacov Zamir
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-08-04 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: quantile
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.2.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.2.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: faraday
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 0.12.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 0.12.0
41
+ description:
42
+ email:
43
+ - kobi.zamir@gmail.com
44
+ executables: []
45
+ extensions: []
46
+ extra_rdoc_files: []
47
+ files:
48
+ - README.md
49
+ - lib/prometheus.rb
50
+ - lib/prometheus/api_client.rb
51
+ - lib/prometheus/api_client/version.rb
52
+ homepage: https://github.com/yaacov/prometheus_api_client_ruby
53
+ licenses:
54
+ - Apache-2.0
55
+ metadata: {}
56
+ post_install_message:
57
+ rdoc_options: []
58
+ require_paths:
59
+ - lib
60
+ required_ruby_version: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: '0'
65
+ required_rubygems_version: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ requirements: []
71
+ rubyforge_project:
72
+ rubygems_version: 2.6.11
73
+ signing_key:
74
+ specification_version: 4
75
+ summary: A suite of reading metric valuesthat are exposed through an API interface.
76
+ test_files: []