Releases: line/armeria
Releases · line/armeria
armeria-0.13.0.Final
armeria-0.12.2.Final
Bug fixes
- #130 Fix NPE while recording tracing annotations
armeria-0.12.1.Final
Bug Fixes
- #127 Propagate all non-null ServerSpans (Zipkin integration)
armeria-0.12.0.Final
New features
- #122 Make
EventLoop
available toRemoteInvoker.invoke()
- NB: This is a breaking change due to the signature change of
RemoteInvoker.invoke()
. You won't notice this at all if you did not implementRemoteInvoker
by yourself to write a decorator.
- NB: This is a breaking change due to the signature change of
- #125 Allow registering callbacks when propagating a
ServiceInvocationContext
- You can add callbacks to a
ServiceInvocationContext
viaonEnter(Runnable)
andonExit(Runnable)
.
- You can add callbacks to a
armeria-0.11.0.Final
New features
- #114 Distributed tracing via Zipkin/Brave
This release introduces distributed tracing capability to Armeria clients and servers using Brave, a distributed tracing library compatible with Zipkin. This enables us to watch timing data among the whole Armeria RPC chain.
Decorating a client
// Create a brave instance with service name, span collector, and sampling rate.
Brave brave = new Brave.Builder("MyClientMain")
.spanCollector(new ScribeSpanCollector("127.0.0.1", 9410))
.traceSampler(Sampler.create(0.01f))
.build();
MyService.Iface client =
new ClientBuilder("tbinary+http://127.0.0.1:8080/thrift/myService")
.decorator(HttpTracingClient.newDecorator(brave))
.build(MyService.Iface.class);
Decorating a server
// Create a brave instance with service name, span collector, and sampling rate.
Brave brave = new Brave.Builder("MyServiceMain")
.spanCollector(new ScribeSpanCollector("127.0.0.1", 9410))
.traceSampler(Sampler.create(0.01f))
.build();
ServerBuilder builder = new ServerBuilder();
builder.port(8080, SessionProtocol.HTTP);
builder.serviceAt("/thrift/myservice",
ThriftService.of(new MyServiceHandler(brave))
.decorate(HttpTracingService.newDecorator(brave));
Bug fixes
armeria-0.10.0.Final
New features
-
#110 Provide a way to create a
TomcatService
from an existing TomcatConnector
- Useful when using an embedded Tomcat already with other library such as Spring Boot:
ServerBuilder sb = new ServerBuilder(); sb.serviceUnder("/tomcat", TomcatService.forConnector("example.com", springBootConnector));
-
#115 DropWizard Metrics support
- Use
MetricCollectingClient
andMetricCollectingService
to collect the metrics of your clients and services:
ServerBuilder sb = new ServerBuilder(); sb.serviceAt( "/thrift/foo", ThriftService.of(...).decorate( MetricCollectingService.newDropwizardDecorator("fooService", metricRegistry)); ClientBuilder cb = new ClientBuilder(...); cb.decorator(MetricCollectingClient.newDropwizardDecorator("barService", metricRegistry));
- Use
Improvements
- #117 Upgrade Netty to 4.1.0.CR3
armeria-0.9.0.Final
New features
- #96 Add more configuration properties to
TomcatService
- #97 Add a way to create a derived client
- You can create a new client with different
ClientOptions
more efficiently usingClients.newDerivedClient()
.
- You can create a new client with different
- #107 More efficient and correct H1C-to-H2C upgrade
SessionProtocolNegotiationCache
now keeps the recent HTTP/2 upgrade failures so that Armeria does not send an upgrade request to the hosts known to be incapable of HTTP/2. This should reduce the number ofHEAD / HTTP/1.1
upgrade requests in your H1C connections.
Improvements
Bug fixes
- #99 Check all interfaces, including ancestor interfaces, when analyzing Thrift handler
- #100 Send the correct 'Host' header when upgrading
Documentation
armeria-0.8.0.Final
New features
- #93 Revamp the client-side decorator API
- It is now as convenient as for the server side to decorate a client.
- See
ClientBuilder.decorator()
for more information.
- #84 Add
Server.nextEventLoop()
so that a user can get one of the available NettyEventLoop
s.
Bug fixes
armeria-0.7.0.Final
- #77 More robust resolution/rejection of an invocation promise
- #78 Use jetty-alpn-agent to simplify
pom.xml
- #79 Add methods to
ServiceInvocationContext
for propagating context into callbacks