MCPcopy Index your code
hub / github.com/Netflix/servo

github.com/Netflix/servo @v0.13.2

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.13.2 ↗ · + Follow
1,772 symbols 6,292 edges 232 files 822 documented · 46%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

DEPRECATED

This project receives minimal maintenance to keep software that relies on it working. There is no active development or planned feature improvement. For any new projects it is recommended to use the Spectator library instead.

For more details see the Servo comparison page in the Spectator docs.

No-Op Registry

As of version 0.13.0, the default monitor registry is a no-op implementation to minimize the overhead for legacy apps that still happen to have some usage of Servo. If the previous behavior is needed, then set the following system property:

com.netflix.servo.DefaultMonitorRegistry.registryClass=com.netflix.servo.jmx.JmxMonitorRegistry

Servo: Application Metrics in Java

servo v. : WATCH OVER, OBSERVE

Latin.

Servo provides a simple interface for exposing and publishing application metrics in Java. The primary goals are:

  • Leverage JMX: JMX is the standard monitoring interface for Java and can be queried by many existing tools.
  • Keep It Simple: It should be trivial to expose metrics and publish metrics without having to write lots of code such as MBean interfaces.
  • Flexible Publishing: Once metrics are exposed, it should be easy to regularly poll the metrics and make them available for internal reporting systems, logs, and services like Amazon CloudWatch.

This has already been implemented inside of Netflix and most of our applications currently use it.

Project Details

Build Status

Build Status

Versioning

Servo is released with a 0.X.Y version because it has not yet reached full API stability.

Given a version number MAJOR.MINOR.PATCH, increment the:

  • MINOR version when there are binary incompatible changes, and
  • PATCH version when new functionality or bug fixes are backwards compatible.

Documentation

Communication

Project Usage

Build

To build the Servo project:

$ git clone https://github.com/Netflix/servo.git
$ cd servo
$ ./gradlew build

More details can be found on the Getting Started page of the wiki.

Binaries

Binaries and dependency information can be found at Maven Central.

Maven Example:

<dependency>
    <groupId>com.netflix.servo</groupId>
    <artifactId>servo-core</artifactId>
    <version>0.12.7</version>
</dependency>

Ivy Example:

<dependency org="com.netflix.servo" name="servo-core" rev="0.12.7" />

License

Copyright 2012-2016 Netflix, Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Extension points exported contracts — how you extend this code

MonitorRegistry (Interface)
Registry to keep track of objects with com.netflix.servo.annotations.Monitor annotations. [8 implementers]
servo-core/src/main/java/com/netflix/servo/MonitorRegistry.java
GraphiteNamingConvention (Interface)
We want to allow the user to override the default graphite naming convention to massage the objects into the right shape [11 …
servo-graphite/src/main/java/com/netflix/servo/publish/graphite/GraphiteNamingConvention.java
JsonPayload (Interface)
payload that can be serialized to json. [5 implementers]
servo-atlas/src/main/java/com/netflix/servo/publish/atlas/JsonPayload.java
StatusFetcher (Interface)
Mechanism used to fetch a status page. [2 implementers]
servo-apache/src/main/java/com/netflix/servo/publish/apache/ApacheStatusPoller.java
ObjectNameMapper (Interface)
Allows for different implementations when mapping a monitor to a JMX ObjectName. The mapper can be can be specif [7 implementers]
servo-core/src/main/java/com/netflix/servo/jmx/ObjectNameMapper.java
ServoAtlasConfig (Interface)
Configuration for the servo to atlas interface. [3 implementers]
servo-atlas/src/main/java/com/netflix/servo/publish/atlas/ServoAtlasConfig.java
SpectatorMonitor (Interface)
Indicates that the monitor implementation will automatically update the spectator registry defined in {@code SpectatorCo [40 …
servo-core/src/main/java/com/netflix/servo/monitor/SpectatorMonitor.java
Monitor (Interface)
Provides a way to sample a value tied to a particular configuration. [6 implementers]
servo-core/src/main/java/com/netflix/servo/monitor/Monitor.java

Core symbols most depended-on inside this repo

withTag
called by 176
servo-core/src/main/java/com/netflix/servo/tag/SortedTagList.java
build
called by 155
servo-core/src/main/java/com/netflix/servo/stats/StatsConfig.java
getConfig
called by 120
servo-core/src/main/java/com/netflix/servo/monitor/Monitor.java
set
called by 112
servo-core/src/main/java/com/netflix/servo/monitor/LongGauge.java
getValue
called by 103
servo-core/src/main/java/com/netflix/servo/tag/Tag.java
builder
called by 98
servo-core/src/main/java/com/netflix/servo/monitor/MonitorConfig.java
get
called by 83
servo-core/src/main/java/com/netflix/servo/util/Memoizer.java
size
called by 78
servo-core/src/main/java/com/netflix/servo/tag/TagList.java

Shape

Method 1,491
Class 243
Interface 28
Enum 10

Languages

Java100%

Modules by API surface

servo-core/src/main/java/com/netflix/servo/SpectatorContext.java62 symbols
servo-core/src/test/java/com/netflix/servo/monitor/SpectatorIntegrationTest.java56 symbols
servo-core/src/main/java/com/netflix/servo/monitor/StatsMonitor.java53 symbols
servo-atlas/src/main/java/com/netflix/servo/publish/atlas/AtlasMetricObserver.java33 symbols
servo-core/src/main/java/com/netflix/servo/util/ThreadCpuStats.java32 symbols
servo-core/src/test/java/com/netflix/servo/stats/StatsBufferTest.java30 symbols
servo-core/src/main/java/com/netflix/servo/stats/StatsConfig.java27 symbols
servo-core/src/main/java/com/netflix/servo/tag/SmallTagMap.java26 symbols
servo-core/src/main/java/com/netflix/servo/monitor/Monitors.java26 symbols
servo-core/src/main/java/com/netflix/servo/monitor/MonitorConfig.java21 symbols
servo-core/src/test/java/com/netflix/servo/tag/BasicTagListTest.java18 symbols
servo-core/src/main/java/com/netflix/servo/stats/StatsBuffer.java18 symbols

For agents

$ claude mcp add servo \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact