Git Product home page Git Product logo

ff-dotnet-server-sdk's People

Contributors

aleczeharness avatar andrija-olmero avatar andrijamilovanovicharness avatar andybharness avatar chrisbarbour avatar chrisblakely01 avatar conormurray95 avatar crystal-fong avatar davejohnston avatar dependabot[bot] avatar erdirowlands avatar gregfullman avatar jcox250 avatar milos85vasic avatar nam054 avatar puneetsar avatar stephenmcconkey avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ff-dotnet-server-sdk's Issues

Need 1.0.8 release

I'd like to get the changes from #9 incorporated into a nuget package that I can pull in via automation build. If we could get that bugfix released, that'd be great, thanks!

DI patterns

Hello,
I'm looking for some additional guidance on the usage of this library in a modern ASP.NET app. Specifically, I was looking to wrap this in a generic Service that I register with Dotnet's DI. Is a Singleton the only pattern we can use with this library? Do you have any examples of registering it with DI? Or do you recommend using the Singleton built into the library?

Not keeping the reference to the Disruptor prevents cleanup when resetting Harness client

If we create a new CfClient to reset everything, the long-running event processor associated with the Disruptor created here keeps running. It won't get any new events, but it can't be cleaned up by GC. Ideally the reference to the Disruptor would be kept so when MetricsProcessor.Stop is called, it can call the Disruptor Halt method.

Logging

The Client is logging what appears to be recoverable "errors" into our logging system which then triggers alerts in our downstream application monitoring systems. There is no easy way for us to filter out this noise since the logs do not identify themselves as originating from this Client.

This library is misusing Serilog and logging in general. Specific violations include:

  1. Logging should be optional in 3rd party libraries. The consumers of your library should have the ability to disable logging completely OR use a logging library other than Serilog, such as the ubiquitous Microsoft.Extensions.Logging.Abstractions library (of which Serilog has an implementation).
  2. Every logged message should have a SourceContext property used to identify the source of the log. Logging libraries have built-in support for filtering based on the value of the SourceContext property.
  3. Do not use string interpolation when logging messages. Instead, give the logger a message template and template arguments and let the logger format the message -- if necessary.
  4. Use the logger's built-in support for exceptions. When logging an exception, the logger has an overload which takes the exception as the first argument. The logger can then format and destructure the exception if configured to do so.
  5. Avoid logging expected or recoverable errors as Error. Log them as Warning or Information instead. Reserve Error logs for truly erroneous behavior.

Auth failures retry forever

If an invalid API key is provided, this sdk will retry forever using that bad API key instead of throwing an exception. This makes it difficult to use in our APIs since calls will just hang if bad config is provided.

If it was possible to expose the auth error and stop the timer that would be great. Maybe a new config value for max number of retries as well.

Changes to Target Group membership are not updated via streaming connection

We're not exactly sure when this started happening, but it seems pretty recent. When a target is added or removed from a target group, the change is received by the SDK but ends up ignored, due to the segment retrieved from Harness having a version of zero, instead of the version indicated by the streaming message. Screenshots below illustrate what I'm seeing:

image

image

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.