-
Notifications
You must be signed in to change notification settings - Fork 360
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
design/impl: control plane metrics monitoring #1955
Conversation
2eea36e
to
0b9f85e
Compare
Codecov Report
@@ Coverage Diff @@
## main #1955 +/- ##
==========================================
- Coverage 65.53% 64.43% -1.10%
==========================================
Files 92 101 +9
Lines 13528 13965 +437
==========================================
+ Hits 8865 8999 +134
- Misses 4114 4407 +293
- Partials 549 559 +10
|
eb8d7cf
to
5ca340d
Compare
I have set up metrics pkg basement which can be easily used in different component, and we support push/pull metrics.
I would like to hear from @envoyproxy/gateway-maintainers . |
5ca340d
to
542d663
Compare
thanks for kickstarting this @Xunzhuo, hoping this lands in v0.6.0 sharing my thoughts on what we should be measuring
request to add a design doc that highlights a few things, which are already answered by your PR
|
29ccc76
to
83d8d2e
Compare
c398366
to
aff1fa3
Compare
@@ -0,0 +1,634 @@ | |||
--- | |||
date: 2023-10-10 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ptal @envoyproxy/gateway-reviewers @envoyproxy/gateway-maintainers
a13322e
to
02ad089
Compare
19ebd3a
to
2b1963b
Compare
af6b271
to
4f90b09
Compare
required: #1967 |
480123f
to
643eeff
Compare
@@ -69,6 +69,12 @@ type EnvoyGatewaySpec struct { | |||
// +optional | |||
Debug *EnvoyGatewayDebug `json:"debug,omitempty"` | |||
|
|||
// Telemetry defines the desired control plane telemetry related abilities. | |||
// If unspecified, the telemetry is used with default configuration. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what is the default configuration ? is it opt in ?
} | ||
return e.Telemetry | ||
} | ||
e.Telemetry = DefaultEnvoyGatewayTelemetry() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why are we enabling prometheus metrics by default ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think most people in Kubernetes are/will use prometheus, it should always enable by default.
// | ||
// +optional | ||
// +kubebuilder:default=true | ||
Enable bool `json:"enable,omitempty"` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why do we need an explicit enable
flag, isn't the instantiation of EnvoyGatewayPrometheusProvider
an implicit enable ?
// +kubebuilder:default=OpenTelemetry | ||
Type MetricSinkType `json:"type"` | ||
// Host define the sink service hostname. | ||
Host string `json:"host"` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
should we start using urls here instead of using 3 fields ?
cc @zirain
) | ||
|
||
// metrics label definitions | ||
// component is which component the update belong to. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
you cannot map a single component to watchable, because it involves a subscriber component and a publisher component.
Also we internally call components runners
|
||
import "github.com/envoyproxy/gateway/internal/metrics" | ||
|
||
var ( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
these metrics need to be split up in terms of subscribe and publish
@@ -0,0 +1,73 @@ | |||
// Copyright Envoy Gateway Authors |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can we take this library out as a separate PR ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure, I would like to separate it with 3 PR:
- design + api
- library
- metrics instrumentation
82ae3fb
to
aec4cb8
Compare
Signed-off-by: bitliu <bitliu@tencent.com>
aec4cb8
to
bf0b87a
Compare
Close in favor of PR separations |
What type of PR is this?
What this PR does / why we need it:
design: control plane metrics monitoring
Which issue(s) this PR fixes:
Fixes #700
https://gateway.xunzhuo.cafe/latest/design/eg-metrics