yabeda-httpx 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 0053b46b3ddf877d33cad27da037a9a5d63ce664da42484715f00e690b9b5130
4
+ data.tar.gz: 5d77497eea67f1f996176769fc02ae423601e409b9b36b38c10ac02e7dd9a64f
5
+ SHA512:
6
+ metadata.gz: 810e68f8e512bae0287c9508967bfaa79afbd8d8518892baaaf78cc447a312ff766b5ab7dbb74b5cdc9d4a3db9dc8152bd5ce7ea1c18dac7b663fc90e9ca571d
7
+ data.tar.gz: a8d28764d57170b6f22e19eae1360b8abfe2f9fc8a7c149c2acfc0ce6c6e1dde5a8a1c80b39dc39d9636271468d187d70c8e3b6b813e9e1b2e4896936d762b1c
@@ -0,0 +1,36 @@
1
+ name: Ruby Gem
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'v*'
7
+
8
+ jobs:
9
+ build:
10
+ name: Build + Publish
11
+ runs-on: ubuntu-latest
12
+ permissions:
13
+ contents: read
14
+ packages: write
15
+
16
+ steps:
17
+ - uses: actions/checkout@v4
18
+
19
+ - name: Set up Ruby
20
+ uses: ruby/setup-ruby@v1
21
+ with:
22
+ ruby-version: '3.3'
23
+ bundler-cache: true
24
+
25
+ - name: Build gem
26
+ run: gem build yabeda-httpx.gemspec
27
+
28
+ - name: Publish to RubyGems
29
+ run: |
30
+ mkdir -p $HOME/.gem
31
+ touch $HOME/.gem/credentials
32
+ chmod 0600 $HOME/.gem/credentials
33
+ printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
34
+ gem push *.gem
35
+ env:
36
+ GEM_HOST_API_KEY: "${{secrets.GEM_HOST_API_KEY}}"
data/.gitignore ADDED
@@ -0,0 +1,11 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /coverage/
5
+ /doc/
6
+ /pkg/
7
+ /spec/reports/
8
+ /tmp/
9
+ /vendor
10
+ *.gem
11
+ Gemfile.lock
data/CHANGELOG.md ADDED
@@ -0,0 +1,20 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ## [0.1.0] - 2024-02-05
11
+
12
+ ### Added
13
+
14
+ - Initial release
15
+ - `Yabeda::Httpx.instrument` method to add metrics to HTTPX sessions
16
+ - `httpx_requests_total` counter for tracking request counts
17
+ - `httpx_responses_total` counter for tracking responses by status
18
+ - `httpx_errors_total` counter for tracking request errors
19
+ - `httpx_request_duration` histogram for tracking request latency
20
+ - Support for HTTPX callbacks plugin (requires HTTPX >= 1.2.0)
data/Gemfile ADDED
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
6
+
7
+ # Specify your gem's dependencies in yabeda-httpx.gemspec
8
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2024 Jon David Schober
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,201 @@
1
+ # Yabeda::Httpx
2
+
3
+ [![Gem Version](https://badge.fury.io/rb/yabeda-httpx.svg)](https://badge.fury.io/rb/yabeda-httpx)
4
+ [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE.txt)
5
+
6
+ A [Yabeda](https://github.com/yabeda-rb/yabeda) plugin for monitoring [HTTPX](https://gitlab.com/os85/httpx) HTTP client requests. This gem provides automatic instrumentation for external HTTP calls made with HTTPX, exposing metrics for request counts, response times, and errors.
7
+
8
+ ## Why Use This Gem?
9
+
10
+ HTTPX is a modern, feature-rich HTTP client for Ruby. When making external API calls, it's crucial to monitor:
11
+
12
+ - **Request latency**: Track how long external services take to respond
13
+ - **Error rates**: Detect issues with external dependencies
14
+ - **Request volume**: Understand traffic patterns to external services
15
+ - **Status code distribution**: Monitor success vs. failure rates
16
+
17
+ This gem integrates seamlessly with Yabeda's ecosystem to provide these insights with minimal configuration.
18
+
19
+ ## Requirements
20
+
21
+ - Ruby 2.7 or higher
22
+ - [HTTPX](https://gitlab.com/os85/httpx) >= 1.2.0 (for callbacks plugin support)
23
+ - [Yabeda](https://github.com/yabeda-rb/yabeda) >= 0.6
24
+
25
+ ## Installation
26
+
27
+ Add this line to your application's Gemfile:
28
+
29
+ ```ruby
30
+ gem 'yabeda-httpx'
31
+ gem 'yabeda-prometheus' # or another exporter
32
+ ```
33
+
34
+ And then execute:
35
+
36
+ ```bash
37
+ $ bundle install
38
+ ```
39
+
40
+ ## Usage
41
+
42
+ ### Basic Usage
43
+
44
+ ```ruby
45
+ require 'yabeda/httpx'
46
+
47
+ # Create an HTTPX session and instrument it
48
+ http = HTTPX.plugin(:persistent)
49
+ http = Yabeda::Httpx.instrument(http)
50
+
51
+ # Make requests as normal - metrics are automatically collected
52
+ response = http.get("https://api.example.com/users")
53
+ response = http.post("https://api.example.com/orders", json: { item: "widget" })
54
+ ```
55
+
56
+ ### With Rails
57
+
58
+ In a Rails application, you might create an instrumented client in an initializer or service:
59
+
60
+ ```ruby
61
+ # config/initializers/http_client.rb
62
+ require 'yabeda/httpx'
63
+
64
+ module HttpClient
65
+ def self.session
66
+ @session ||= Yabeda::Httpx.instrument(
67
+ HTTPX.plugin(:persistent, :follow_redirects).with(
68
+ timeout: { read_timeout: 30 }
69
+ )
70
+ )
71
+ end
72
+ end
73
+ ```
74
+
75
+ Then use it in your application:
76
+
77
+ ```ruby
78
+ # In a service or controller
79
+ response = HttpClient.session.get("https://api.stripe.com/v1/charges")
80
+ ```
81
+
82
+ ### With Additional HTTPX Plugins
83
+
84
+ The instrumentation works with any HTTPX plugins:
85
+
86
+ ```ruby
87
+ http = HTTPX
88
+ .plugin(:persistent)
89
+ .plugin(:proxy)
90
+ .plugin(:follow_redirects)
91
+ .with(timeout: { read_timeout: 60 })
92
+
93
+ http = Yabeda::Httpx.instrument(http)
94
+ ```
95
+
96
+ ## Exposed Metrics
97
+
98
+ | Metric Name | Type | Labels | Description |
99
+ |-------------|------|--------|-------------|
100
+ | `httpx_requests_total` | counter | `host`, `method` | Total number of HTTP requests initiated |
101
+ | `httpx_responses_total` | counter | `host`, `method`, `status` | Total number of HTTP responses received |
102
+ | `httpx_errors_total` | counter | `host`, `method`, `error_class` | Total number of request errors (connection failures, timeouts, etc.) |
103
+ | `httpx_request_duration` | histogram | `host`, `method`, `status` | Request duration in seconds |
104
+
105
+ ### Histogram Buckets
106
+
107
+ The request duration histogram uses the following buckets (in seconds):
108
+
109
+ ```
110
+ 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10, 30, 60, 90
111
+ ```
112
+
113
+ This covers a range from 10ms to 90 seconds, suitable for most external API calls.
114
+
115
+ ## Example Prometheus Queries
116
+
117
+ ### Request Rate by Host
118
+
119
+ ```promql
120
+ sum(rate(httpx_requests_total[5m])) by (host)
121
+ ```
122
+
123
+ ### Error Rate
124
+
125
+ ```promql
126
+ sum(rate(httpx_errors_total[5m])) / sum(rate(httpx_requests_total[5m])) * 100
127
+ ```
128
+
129
+ ### p95 Latency
130
+
131
+ ```promql
132
+ histogram_quantile(0.95, sum(rate(httpx_request_duration_bucket[5m])) by (le))
133
+ ```
134
+
135
+ ### Requests by Status Code
136
+
137
+ ```promql
138
+ sum(rate(httpx_responses_total[5m])) by (status)
139
+ ```
140
+
141
+ ## Grafana Dashboard
142
+
143
+ A sample Grafana dashboard JSON is available in the repository. Import it to visualize:
144
+
145
+ - Total requests and request rate
146
+ - Error rate percentage
147
+ - Latency percentiles (p50, p90, p99)
148
+ - Requests breakdown by host and HTTP method
149
+ - Error tracking by host and error class
150
+
151
+ ## Configuration
152
+
153
+ The gem automatically configures metrics when required. No additional configuration is needed.
154
+
155
+ If you need custom bucket sizes, you can override the `BUCKETS` constant before requiring the gem:
156
+
157
+ ```ruby
158
+ Yabeda::Httpx::BUCKETS = [0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5].freeze
159
+ require 'yabeda/httpx'
160
+ ```
161
+
162
+ ## How It Works
163
+
164
+ The gem uses HTTPX's `:callbacks` plugin (introduced in v1.2.0) to hook into the request lifecycle:
165
+
166
+ 1. **`on_request_started`**: Records the start time and increments the request counter
167
+ 2. **`on_response_completed`**: Calculates duration and records response metrics
168
+ 3. **`on_request_error`**: Captures connection errors, timeouts, and other failures
169
+
170
+ This approach has minimal overhead and doesn't interfere with HTTPX's normal operation.
171
+
172
+ ## Development
173
+
174
+ 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.
175
+
176
+ To install this gem onto your local machine, run `bundle exec rake install`.
177
+
178
+ ## Contributing
179
+
180
+ Bug reports and pull requests are welcome on GitHub at https://github.com/jondavidschober/yabeda-httpx.
181
+
182
+ 1. Fork it
183
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
184
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
185
+ 4. Push to the branch (`git push origin my-new-feature`)
186
+ 5. Create a new Pull Request
187
+
188
+ ## License
189
+
190
+ The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
191
+
192
+ ## Credits
193
+
194
+ Created by [Jon David Schober](https://github.com/jondavidschober) at [Datavine](https://getdatanamic.com).
195
+
196
+ ## See Also
197
+
198
+ - [Yabeda](https://github.com/yabeda-rb/yabeda) - Extensible framework for collecting metrics
199
+ - [HTTPX](https://gitlab.com/os85/httpx) - A Ruby HTTP library for tomorrow... and beyond!
200
+ - [yabeda-prometheus](https://github.com/yabeda-rb/yabeda-prometheus) - Prometheus exporter for Yabeda
201
+ - [yabeda-http_requests](https://github.com/yabeda-rb/yabeda-http_requests) - Similar gem for Net::HTTP
data/Rakefile ADDED
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "bundler/gem_tasks"
4
+ require "rspec/core/rake_task"
5
+
6
+ RSpec::Core::RakeTask.new(:spec)
7
+
8
+ task default: :spec
data/bin/console ADDED
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require "bundler/setup"
5
+ require "yabeda/httpx"
6
+
7
+ # You can add fixtures and/or initialization code here to make experimenting
8
+ # with your gem easier. You can also use a different console, if you like.
9
+
10
+ require "irb"
11
+ IRB.start(__FILE__)
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Yabeda
4
+ module Httpx
5
+ VERSION = "0.1.0"
6
+ end
7
+ end
@@ -0,0 +1,77 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "yabeda"
4
+ require "yabeda/httpx/version"
5
+
6
+ module Yabeda
7
+ module Httpx
8
+ BUCKETS = [0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10, 30, 60, 90].freeze
9
+
10
+ class << self
11
+ # Instruments an HTTPX session with Yabeda metrics using the callbacks plugin.
12
+ #
13
+ # @param session [HTTPX::Session] The HTTPX session to instrument
14
+ # @return [HTTPX::Session] The instrumented session with callbacks attached
15
+ #
16
+ # @example
17
+ # http = HTTPX.plugin(:persistent)
18
+ # http = Yabeda::Httpx.instrument(http)
19
+ # response = http.get("https://example.com")
20
+ #
21
+ def instrument(session)
22
+ session
23
+ .plugin(:callbacks)
24
+ .on_request_started do |request|
25
+ request.instance_variable_set(:@yabeda_start_time, Process.clock_gettime(Process::CLOCK_MONOTONIC))
26
+
27
+ Yabeda.httpx.requests_total.increment(
28
+ host: request.uri.host,
29
+ method: request.verb.to_s.upcase
30
+ )
31
+ end
32
+ .on_response_completed do |request, response|
33
+ start_time = request.instance_variable_get(:@yabeda_start_time)
34
+ duration = start_time ? Process.clock_gettime(Process::CLOCK_MONOTONIC) - start_time : 0
35
+
36
+ tags = {
37
+ host: request.uri.host,
38
+ method: request.verb.to_s.upcase,
39
+ status: response.status.to_s
40
+ }
41
+
42
+ Yabeda.httpx.responses_total.increment(tags)
43
+ Yabeda.httpx.request_duration.measure(tags, duration)
44
+ end
45
+ .on_request_error do |request, error|
46
+ Yabeda.httpx.errors_total.increment(
47
+ host: request.uri.host,
48
+ method: request.verb.to_s.upcase,
49
+ error_class: error.class.name
50
+ )
51
+ end
52
+ end
53
+ end
54
+
55
+ Yabeda.configure do
56
+ group :httpx do
57
+ counter :requests_total,
58
+ comment: "Total number of HTTPX requests",
59
+ tags: %i[host method]
60
+
61
+ counter :responses_total,
62
+ comment: "Total number of HTTPX responses",
63
+ tags: %i[host method status]
64
+
65
+ counter :errors_total,
66
+ comment: "Total number of HTTPX request errors",
67
+ tags: %i[host method error_class]
68
+
69
+ histogram :request_duration,
70
+ comment: "HTTPX request duration in seconds",
71
+ unit: :seconds,
72
+ tags: %i[host method status],
73
+ buckets: BUCKETS
74
+ end
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ lib = File.expand_path("../lib", __FILE__)
4
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
+ require "yabeda/httpx/version"
6
+
7
+ Gem::Specification.new do |spec|
8
+ spec.name = "yabeda-httpx"
9
+ spec.version = Yabeda::Httpx::VERSION
10
+ spec.authors = ["Jon David Schober"]
11
+ spec.email = ["jon@getdatanamic.com"]
12
+
13
+ spec.summary = "Yabeda plugin for monitoring HTTPX external HTTP requests"
14
+ spec.description = "Yabeda plugin that instruments HTTPX HTTP client with request metrics including duration histograms, request counts, and error tracking"
15
+ spec.homepage = "https://github.com/jondavidschober/yabeda-httpx"
16
+ spec.license = "MIT"
17
+
18
+ spec.required_ruby_version = ">= 2.7"
19
+
20
+ if spec.respond_to?(:metadata)
21
+ spec.metadata["homepage_uri"] = spec.homepage
22
+ spec.metadata["source_code_uri"] = "https://github.com/jondavidschober/yabeda-httpx"
23
+ spec.metadata["changelog_uri"] = "https://github.com/jondavidschober/yabeda-httpx/blob/main/CHANGELOG.md"
24
+ else
25
+ raise "RubyGems 2.0 or newer is required to protect against public gem pushes."
26
+ end
27
+
28
+ # Specify which files should be added to the gem when it is released.
29
+ spec.files = Dir.chdir(File.expand_path("..", __FILE__)) do
30
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
31
+ end
32
+ spec.bindir = "exe"
33
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
34
+ spec.require_paths = ["lib"]
35
+
36
+ spec.add_dependency "yabeda", "~> 0.6"
37
+ spec.add_dependency "httpx", ">= 1.2.0"
38
+
39
+ spec.add_development_dependency "bundler", ">= 2.0"
40
+ spec.add_development_dependency "rake", "~> 13.0"
41
+ spec.add_development_dependency "rspec", "~> 3.0"
42
+ end
metadata ADDED
@@ -0,0 +1,129 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: yabeda-httpx
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Jon David Schober
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2026-02-05 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: yabeda
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.6'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.6'
27
+ - !ruby/object:Gem::Dependency
28
+ name: httpx
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 1.2.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 1.2.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '2.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '2.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '13.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '13.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '3.0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '3.0'
83
+ description: Yabeda plugin that instruments HTTPX HTTP client with request metrics
84
+ including duration histograms, request counts, and error tracking
85
+ email:
86
+ - jon@getdatanamic.com
87
+ executables: []
88
+ extensions: []
89
+ extra_rdoc_files: []
90
+ files:
91
+ - ".github/workflows/gem-push.yml"
92
+ - ".gitignore"
93
+ - CHANGELOG.md
94
+ - Gemfile
95
+ - LICENSE.txt
96
+ - README.md
97
+ - Rakefile
98
+ - bin/console
99
+ - bin/setup
100
+ - lib/yabeda/httpx.rb
101
+ - lib/yabeda/httpx/version.rb
102
+ - yabeda-httpx.gemspec
103
+ homepage: https://github.com/jondavidschober/yabeda-httpx
104
+ licenses:
105
+ - MIT
106
+ metadata:
107
+ homepage_uri: https://github.com/jondavidschober/yabeda-httpx
108
+ source_code_uri: https://github.com/jondavidschober/yabeda-httpx
109
+ changelog_uri: https://github.com/jondavidschober/yabeda-httpx/blob/main/CHANGELOG.md
110
+ post_install_message:
111
+ rdoc_options: []
112
+ require_paths:
113
+ - lib
114
+ required_ruby_version: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: '2.7'
119
+ required_rubygems_version: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: '0'
124
+ requirements: []
125
+ rubygems_version: 3.5.22
126
+ signing_key:
127
+ specification_version: 4
128
+ summary: Yabeda plugin for monitoring HTTPX external HTTP requests
129
+ test_files: []