-
Notifications
You must be signed in to change notification settings - Fork 480
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
[core-metadata] continuously logs error if support-notifications isn't running #2524
Comments
Investigating this issue, starting with setting up |
|
espy@xen$ pwd
espy@xen$ docker-compose -f docker-compose-nexus-redis.yml up ^^ using the latest developer-scripts I also reproduced it using docker-compose-nexus-redis-no-secty.yml. |
|
|
So I do not see the issue when using
@tonyespy Please feel free to close out this issue after you've reviewed my findings above and are satisfied 👍 Thanks! |
@akramtexas so you're saying you if you comment out support-notifications in either of those compose files and then bring everything up you're not seeing the same log message that I see? In other words, you can't reproduce the issue? |
Yes @tonyespy that is correct 👍 |
But did you disable support-notifications as part of your test (ie. so it never starts)? Yes, I sure did ✅ I had disabled |
OK, then we still have a mystery to solve... I'll look at this again later. |
Alright, I finally had some more cycles to look into this, and once again this was super easy to reproduce using any of the latest nightly-build docker-compose files. Here's how I reproduced:
Furthermore after examining the core-metadata code, the The other mystery was why does metadata continuously log that the notifications endpoint can't be found. @tsconn23 mentioned something about our client implementations implementing health checks, which I finally got a chance to review this morning. Apparently when a new client instance is set up, a goroutine is spawned to monitor the state of the endpoint. I'd like this mechanism to be included in the Hanoi discussion about the SMA, which also hard-codes a set of required dependencies and implements its own health check logic (see issue #2486). As I understand it, we now have at least three overlapping health check mechanisms:
As these are all implemented using REST calls, there's an awful lot of HTTP traffic happening to implement all of this logic which consumes compute resources, and in turn has a downward drag on the overall performance of the system. This might be OK for a cloud-based deployment, but on real devices, all this overhead can have a big impact. We have a service registry (Consul), why not use it for what it was designed for an monitor required endpoints using Consul? AFAIK, it's possible to get setup watchers in order to get notified when service health checks start failing... |
@tonyespy , I think this issue will go away when we remove Client Monitoring. Agree? |
This issue has been resolved by #2595. |
🐞 Bug Report
By definition, the support-* services are optional, however if support-notifications is disabled, core-metadata continuously logs an error about a missing endpoint every 10-15s.
This was originally discovered in the snap (which disabled support-notifications by default) built from my latest snap development branch.
I tried reproducing with docker, however I'm getting redis AUTH failures with the latest docker-compose-nexus-redis.yml file from developer-scripts.
Affected Services
The issue is located in: core-metadata
Is this a regression?
Maybe
Description and Minimal Reproduction
If support-notifications is not running, core-metadata logs the following error every 10-15s:
Apr 27 17:40:27 xen edgexfoundry.core-metadata[4831]: unable to get service endpoint for edgex-support-notifications: no matching service endpoint found
🌍 Your Environment
Deployment Environment:
Snap installed on Ubuntu 16.04 Desktop
EdgeX Version:
Geneva built from master
The text was updated successfully, but these errors were encountered: