Comments (7)
It's an interesting idea, but I don't think it's feasible to try to design it in a single PR in this repository. All of the persistent store functionality comes from the Go SDK, and some of the metrics you're talking about could only be reported from within the database-specific store implementation component (e.g. there's no such thing as a universal connection pool that Relay could observe in any generic way) so this would probably require changes in the SDK component APIs.
from ld-relay.
I am missing something perhaps here - but ignoring the pool metrics (which I presume is a SDK implementation detail), can we not perform the metric calculation in the relay_feature_store.go
file? Consider the Upsert()
method which currently looks as:
sw.loggers.Debugf(`Received feature flag update: %s (version %d)`, key, item.Version)
updated, err := sw.store.Upsert(kind, key, item)
What if we surrounded the call to Upsert()
with a timer for latency and a counter for non-nil errors?
from ld-relay.
I am missing something perhaps here - but ignoring the pool metrics (which I presume is a SDK implementation detail)
That's exactly the thing I just mentioned above:
some of the metrics you're talking about could only be reported from within the database-specific store implementation component (e.g. there's no such thing as a universal connection pool that Relay could observe in any generic way)
So, if you want connection pool information, then this cannot be done only with Relay changes. If you don't want connection pool information after all, then that's another matter, and Relay changes might be sufficient.
from ld-relay.
So, if you want connection pool information, then this cannot be done only with Relay changes. If you don't want connection pool information after all, then that's another matter, and Relay changes might be sufficient.
Sounds 👍 , I will take a stab at the persistent store operations metrics first and follow up separately related to the pool metrics in the Go SDK project.
from ld-relay.
You will not be able to add connection pool metrics in the Go SDK project; I think you may have underestimated the scope of such a change. Connection pooling is part of the individual database integrations— as I said, there is no universal concept of a connection pool that the SDK can deal with overall. That is part of the third-party Redis/Consul/DynamoDB clients that we use. We would have to 1. determine what (if any) pool-related metrics are actually available to us from those clients, 2. come up with a standardized way to represent them in the SDK, 3. design a new component interface in the SDK (since the existing PersistentDataStore
interface has no method for this), and 4. update each of the integration libraries to implement that interface.
We're happy to note it as a feature request, but I think this one will be more feasible for us to implement in-house. At the very least, I strongly recommend that you look in detail at how persistent data stores are implemented in the SDK before pursuing this.
from ld-relay.
I'm also not clear on what kind of metrics you're looking for in regard to connection pools. If you want to know how many connections are being made to your database instance, I would think it'd be easier to monitor that on the server side.
from ld-relay.
I'm also not clear on what kind of metrics you're looking for in regard to connection pools. If you want to know how many connections are being made to your database instance, I would think it'd be easier to monitor that on the server side.
That's a good point. I guess we can do that too and from what you mention in the previous comment, might be an easier starting point.
from ld-relay.
Related Issues (20)
- vulnerability warning CVE-2022-2097 HOT 1
- vulnerability warnings in ld-relay 6.7.10 Docker image HOT 1
- Big segments, seperate DynamoDB tables per environement and autoconfiguration HOT 3
- vulnerability warning CVE-2022-37434
- vulnerability warning CVE-2020-8911 and others related to AWS SDK HOT 3
- Multiple vulnerabilities found in Docker image v6.7.13 HOT 5
- LD relay fails to reconnect to Redis after Redis restarts HOT 5
- Missing Prometheus metrics on LD relay 7.0.0 HOT 7
- vulnerability warning CVE-2022-41717 HOT 2
- Give us your feedback: Distroless docker image instead of Alpine HOT 1
- ld-relay docs say it can load config from environment AND config file, but it doesn't work HOT 2
- OpenSSL vulnerabilities detected in ld-relay:7.2.2 HOT 3
- Please address CVE-2023-2650 in the Docker image HOT 1
- golang and OpenSSL vulnerabilities detected in ld-relay:7.2.5 and ld-relay:7.3.1 HOT 3
- Publish Relay Proxy Docker Images to Amazon ECR Public Gallery HOT 9
- disableInternalUsageMetrics has been removed in relay v8 HOT 4
- Docs for V6 to V7 Server SDK are not helpful HOT 3
- OpenSSL vulnerabilities detected in ld-relay:7.4.1 HOT 3
- Go grpc vulnerabilities detected in ld-relay:8.2.0 HOT 2
- Atomic update to an offline configuration archive causes subsequent changes to be missed HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ld-relay.