Tags: zeb19037/servo
Tags
stop using JCenter for publishing (Netflix#469) Main goal of this change is to phase out the use of JCenter before it is [sunset]. [sunset]: https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/ The following updates have been made: - Move from TravisCI to Github Actions. - Update to latest Nebula plugins. - Update to latest Gradle and codequality plugins. - Fix a few issues flagged by updated codequality plugins. - Remove API compatibility check. This broke for some and given the current state of Servo, it was just removed rather than trying to fix.
stop using JCenter for publishing (Netflix#469) Main goal of this change is to phase out the use of JCenter before it is [sunset]. [sunset]: https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/ The following updates have been made: - Move from TravisCI to Github Actions. - Update to latest Nebula plugins. - Update to latest Gradle and codequality plugins. - Fix a few issues flagged by updated codequality plugins. - Remove API compatibility check. This broke for some and given the current state of Servo, it was just removed rather than trying to fix.
add a checkArgument that avoids varargs (Netflix#465) Avoids varargs and the allocation overhead of creating a string array. During application profiling found that some allocation can be avoided if we explicitly invoke the checkArgument method without varargs Allocation profiling via async-profiler: ``` --- 1451114625215846968 bytes (21.40%), 10371 samples [ 0] java.lang.String[] [ 1] com.netflix.servo.tag.BasicTag.checkNotEmpty [ 2] com.netflix.servo.tag.BasicTag.<init> [ 3] com.netflix.servo.tag.Tags.newTag [ 4] com.netflix.servo.monitor.MonitorConfig$Builder.withTag ```
do not warn if global registry used for context (Netflix#463) If the Spectator global registry is used for the SpectatorContext, then do not log a warning. In some legacy apps the context must be set early to the global registry to avoid missing some metrics. It can then be overwritten by the primary registry after it has been created later in the startup process.
warn if SpectatorContext registry is overwritten (Netflix#458) Adds a warning level log message if the registry used with the SpectatorContext is overwritten. This should help with debugging cases where Servo metrics are not being reported properly because of initialization bugs in the application.
avoid mem leak for improper use of registerObject (Netflix#451) Calling `Monitors.registerObject` with a monitor such as a `BasicCounter` instance will register an empty composite monitor with an id like `default:class=BasicCounter`. When using the spectator integration this would result is a memory leak because it needs to track the instances to be able to aggregate the results. This change updates the registration to remove any previous copies and overwrite which is the default for servo. It also double checks if it is an empty basic composite and just ignores those since they will never have any monitors to collect. It is a bit difficult to test without a bunch of reflection to dig into the guts of the meter state. I did reproduce in a debugger using the following test case and confirm the state is no longer growing: ```java @test public void testBasicCounterLoop() { for (int i = 0; i < 1000; ++i) { BasicCounter c = new BasicCounter(CONFIG); Monitors.registerObject(c); c.increment(); } assertEquals(1000, registry.counter(ID).count()); } ```
base StatsMonitor expiration on writes (Netflix#450) Before it was using calls to `getMonitors` to update the last used time. That method will not get called when delegating to Spectator and thus it will always expire 15 minutes after registration and never come back. This changes the last used time to get updated when values are recorded rather than when they are read using `getMonitors`.
PreviousNext