Coder Social home page Coder Social logo

philips-software / logproxy Goto Github PK

View Code? Open in Web Editor NEW
10.0 6.0 5.0 1.2 MB

Logdrainer for Cloud foundry and IronIO which forwards logs to HSP Logging

License: MIT License

Go 98.90% Shell 0.41% Dockerfile 0.67% Procfile 0.02%
logproxy rfc5424 hsdp

logproxy's People

Contributors

bartgolsteijn avatar dependabot-preview[bot] avatar dependabot[bot] avatar ivd-git avatar krmeda avatar loafoe avatar philips-rpulijala avatar soubhagya-pradhan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

logproxy's Issues

introduce on/off flag for "pure passthrough" for base64 encoded logmessages

Starting LogProxy v1.6x the "pure passthrough" functionality was introduced allowing LogEvent.logData.message encoded in base64 to be passed unaltered to Kibana. In versions prior to v1.6x LogProxy would encode clear text into base64 automatically.

Recently Kibana experiencing long downtimes which drives us to inspect log messages from services using CF and makes it a huge hassle to decode each message manually.

It would be nice to have an on/off switch for "pure passthrough" functionality on TF level or even better to have LogProxy automatically recognize the clear text vs base64encoded and handle it accordingly.

Will appreciate any help on the matter! @loafoe

logproxy as FAAS

I am moving my issue to official github

Can we get a FAAS which will be easier to use instead of doing all the below setup for iron.io?

  1. Configure logproxy
  2. Get the code docker pull philipssoftware/logproxy
  3. Create a new micro service using the keys and binding to log proxy service
  4. Do we need a rabitmq service also?
  5. Cf push the micro service which will enable iron.io logs to push to Kibana
  6. Need help how iron.io config will use the proxy service?

Improve documentation

Ideally want to have a small design document explaining the components and why this exists and if there were any design choices to be made that influenced it.

  • Design Document
  • Pull Request Template
  • Way or Working document (improve the existing documentation)
  • Static Code Analysis
  • Build pipeline incorporating Integration Tests, etc. prior to merge into mainline.
  • Badges

Duplicate logs are created when logproxy runs into an error

In our Healthdot Kibana logging, we see certain logs being duplicated and others missing.

E.g. The following snippet of logging:
image

Resulted in the following duplication in Kibana:
image

It seems that when the duplication occurs, logproxy itself logs a sequence of messages such as:
image

The error that occurred doesn't seem to be logged, so it is currently unclear what the root cause is.

Spring Actuator like "Admin Processes" features

Authenticated endpoints for

  • Health Monitoring: System Health HTTP Endpoint (includes health of RMQ or dependency services)
  • Metrics: Prometheus style (probably have to look at a Datadog Agent/New Relic agent support later)

Update docker base image to latest version

For our product (PICS / Cardiology Reporting) we are updating all base images to have the latest/best image with the latest security fixes.
Can we update the docker base image
FROM golang:1.20.1-alpine to golang:1.21.6-alpine or golang:1.21.6-alpine3.19?

Support for service identities

  • Add support for service identities with LOG.CREATE scope
  • Eliminates the need for outdated shared key / secrets API signing

Errors from HSDP when providing LogEvent resources with invalid characters

When providing DhpLogEvents, any characters that would be deemed invalid by HSDP Logging are replaced. However, when providing a LogEvent resource this is not the case.

E.g. The following LogEvent is passed to HSDP logging with invalid characters in the custom field, resulting in an error:
image

Note that logproxy can also generate LogEvents with invalid values. The LogEvent processing adds some fields with empty string values if they are not provided in the incoming resource (we noticed this for the originatingUser, serviceName, category and component fields). As empty string values are not allowed, this results in errors from HSDP. Perhaps any added fields should get a default value if no value is provided in the incoming resource (for now we've added some defaults to our own code to avoid this).

Dependabot can't parse your go.mod

Dependabot couldn't parse the go.mod found at /go.mod.

The error Dependabot encountered was:

go: github.com/spf13/[email protected] requires
	github.com/grpc-ecosystem/[email protected] requires
	gopkg.in/[email protected]: invalid version: git fetch -f origin refs/heads/*:refs/heads/* refs/tags/*:refs/tags/* in /opt/go/gopath/pkg/mod/cache/vcs/748bced43cf7672b862fbc52430e98581510f4f2c34fb30c0064b7102a68ae2c: exit status 128:
	fatal: The remote end hung up unexpectedly

View the update logs.

LogProxy parsing logs not in LogEvent format

Hi,
Log proxy is not able to parse logs which are not in LogEvent format and the logs are mapped to random guid values.
However it works fine with log drainer.
Application side logs:
2022-11-11T21:41:20.83+0530 [APP/PROC/WEB/0] OUT Request GET /sample/logtest1 => 200
2022-11-11T21:41:20.83+0530 [APP/PROC/WEB/0] OUT {"resourceType":"LogEvent","id":"a996e783-891b-4c88-bcf0-cf9b131751eb","logTime":"2022-11-11T16:11:20.836Z","category":"TraceLog","eventId":"0","component":"Logging.RequestLoggingMiddleware","transactionId":"","originatingUser":"User","logData":{"message":"Request GET /sample/logtest1 => 200, ThreadName: Thread 40, ThreadId: 40"},"severity":"Information","applicationName":"samplelogapp","applicationVersion":"54c35af5-0894-4e94-bca8-3f86e190832b","serviceName":"client-edi-foundation.hds-foundation-dev.samplelogapp","serverName":"DefaultServer","applicationInstance":"3910d915-98e1-4071-911e-76908ab753f6"}

image

Sample Log:

image

Logs on kibana:

image

Improve Integration Tests

  • Add Integration Tests (Support a HTTP Mock scenario by default with option to send to a real endpoint)
  • Link to pipeline
  • Performance Tests

Dependabot can't resolve your Go dependency files

Dependabot can't resolve your Go dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

github.com/philips-software/logproxy/handlers: cannot find module providing package github.com/philips-software/logproxy/handlers
	github.com/philips-software/logproxy/queue: cannot find module providing package github.com/philips-software/logproxy/queue
	github.com/philips-software/logproxy/shared: cannot find module providing package github.com/philips-software/logproxy/shared

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

Dependabot can't resolve your Go dependency files

Dependabot can't resolve your Go dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

github.com/philips-software/logproxy/handlers: cannot find module providing package github.com/philips-software/logproxy/handlers
github.com/philips-software/logproxy imports
	github.com/philips-software/logproxy/queue: cannot find module providing package github.com/philips-software/logproxy/queue
github.com/philips-software/logproxy imports
	github.com/philips-software/logproxy/shared: cannot find module providing package github.com/philips-software/logproxy/shared

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.