Comments (7)
I'd be very excited to see this PR.
from argo-cd.
We should probably consider switching to JSON by default in 3.0. But the option is already available today.
from argo-cd.
Turns out the problem is more complicated than I thought. While some logs in appcontroller don't have info about the application, a lot of them include it in the structured data, including the example I've shown. However, when viewing the logs in the Datadog, application's fully qualified name is not available in the parsed event attributes and also not added to the log line (as it probably shouldn't). There's also been an example of logs where fields are added to the log message but in a way that indicate some broken parsing.
So the source of the issue lies in ArgoCD not using JSON format recommended by Datadog for integration, and the custom Grok parser for the ArgoCD logs we have seems to not cover some edge cases (probably / in the unquoted value of the field).
I'd open a discussion about potentially switching to JSON log format or finding other ways to have parsing working better.
from argo-cd.
Oh, my search for potential usage of JSONFormatter was too naive. After your pointer, I've traced that to util/log/logrus.go
.
from argo-cd.
I'd just run the controller with the corresponding option, though still plan to submit the PR for some logging improvements.
from argo-cd.
The PR is ready and passes CI. I'm not 100% sure though whether to log an app fully qualified name, or log a regular name and namespace separately. There's no consistency now - audit logger and couple of places choose the later, while multiple other places choose the former. In my PR I gave preference to the qualified name, but didn't go as far as editing audit logger. What do you think?
from argo-cd.
Thinking more about this, I'll probably switch to using a regular app name and have namespace as a separate parameter, as well as separate field for a qualified name. It's going to be reasonable when querying structured data via Datadog and also supporting just using grep on raw logs.
from argo-cd.
Related Issues (20)
- Configurable lua libs for resource actions
- Apps don't sync every are in stuck in refreshing HOT 2
- FullscreenButton in PodsLogsViewer is not hinden when PodsLogsViewer is in full screen HOT 1
- Please allow disabling application spec in events HOT 1
- Add `no_proxy` field to repo-creds HOT 2
- manifest-generate-paths with autosync causes an undesirable refresh sync
- 2.11.0 -> 2.11.1 changed the Registry for Redis and HAProxy from Docker to Amazon ECR breaking Cosign verification HOT 8
- application-controller hung mid-processing
- Add livenessProbe for argocd-application-controller HOT 1
- Large binary log output in Loki
- Server-Side Diff shows OutOfSync despite ignoreDifferences enabled and slow reconciliation performance
- Refresh Failed: can not refresh repository which contains submodules cause argocd modified some files
- helm post-delete hooks is not working with argocd as expected
- argocd-redis secret-init initcontainer timeout HOT 11
- The order of sources (git/helm) in multi-source application matters in case of app diff & manifests features HOT 1
- AppProjects don't check all namespaces before finalizing deletion HOT 1
- Concurrency Issue with Slugify Function HOT 1
- UI error HOT 1
- Unable to override json value when using multiple sources to build argocd application HOT 1
- Generic Web API Provider Configuration
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 argo-cd.