Releases: iopipe/iopipe-java
Adjustments and Build Issue Fixes
- Add environment variable
IOPIPE_HANDLER
to match other agents. - Correct building with OpenJDK 11.
- Update versions.
Layer versions:
- ap-northeast-1:
arn:aws:lambda:ap-northeast-1:146318645305:layer:IOpipeJava8:4
- ap-northeast-2:
arn:aws:lambda:ap-northeast-2:146318645305:layer:IOpipeJava8:4
- ap-south-1:
arn:aws:lambda:ap-south-1:146318645305:layer:IOpipeJava8:4
- ap-southeast-1:
arn:aws:lambda:ap-southeast-1:146318645305:layer:IOpipeJava8:4
- ap-southeast-2:
arn:aws:lambda:ap-southeast-2:146318645305:layer:IOpipeJava8:4
- ca-central-1:
arn:aws:lambda:ca-central-1:146318645305:layer:IOpipeJava8:4
- eu-central-1:
arn:aws:lambda:eu-central-1:146318645305:layer:IOpipeJava8:4
- eu-west-1:
arn:aws:lambda:eu-west-1:146318645305:layer:IOpipeJava8:4
- eu-west-2:
arn:aws:lambda:eu-west-2:146318645305:layer:IOpipeJava8:4
- eu-west-3:
arn:aws:lambda:eu-west-3:146318645305:layer:IOpipeJava8:4
- us-east-1:
arn:aws:lambda:us-east-1:146318645305:layer:IOpipeJava8:4
- us-east-2:
arn:aws:lambda:us-east-2:146318645305:layer:IOpipeJava8:4
- us-west-1:
arn:aws:lambda:us-west-1:146318645305:layer:IOpipeJava8:4
- us-west-2:
arn:aws:lambda:us-west-2:146318645305:layer:IOpipeJava8:4
Agent Refactoring
Released on December 4, 2018.
- The agent has undergone a refactor and code cleanup.
Lambda Layer ARNs:
- ap-northeast-1:
arn:aws:lambda:ap-northeast-1:146318645305:layer:IOpipeJava8:1
- ap-northeast-2:
arn:aws:lambda:ap-northeast-2:146318645305:layer:IOpipeJava8:1
- ap-south-1:
arn:aws:lambda:ap-south-1:146318645305:layer:IOpipeJava8:1
- ap-southeast-1:
arn:aws:lambda:ap-southeast-1:146318645305:layer:IOpipeJava8:1
- ap-southeast-2:
arn:aws:lambda:ap-southeast-2:146318645305:layer:IOpipeJava8:1
- ca-central-1:
arn:aws:lambda:ca-central-1:146318645305:layer:IOpipeJava8:1
- eu-central-1:
arn:aws:lambda:eu-central-1:146318645305:layer:IOpipeJava8:1
- eu-west-1:
arn:aws:lambda:eu-west-1:146318645305:layer:IOpipeJava8:1
- eu-west-2:
arn:aws:lambda:eu-west-2:146318645305:layer:IOpipeJava8:1
- eu-west-3:
arn:aws:lambda:eu-west-3:146318645305:layer:IOpipeJava8:1
- us-east-1:
arn:aws:lambda:us-east-1:146318645305:layer:IOpipeJava8:2
- us-east-2:
arn:aws:lambda:us-east-2:146318645305:layer:IOpipeJava8:1
- us-west-1:
arn:aws:lambda:us-west-1:146318645305:layer:IOpipeJava8:1
- us-west-2:
arn:aws:lambda:us-west-2:146318645305:layer:IOpipeJava8:1
Critical Bug Fix Release
This release fixes a critical bug where not having the configuration resource causes a crash.
Bug Fixes
This release contains bug fixes to improve the agent.
- The configuration can be placed in the JAR inside of
/iopipe.properties
. - The generic entry point handler can now be set via system property.
- If plugins fail to initialize they will not be initialized again.
- Deprecated static configuration.
- Removal of deprecated profiler URL which was replaced by signer.
- An alternative collector URL may now be specified.
Support for logger adapting to report logs to IOpipe
Released on October 10, 2018.
- Support for the IOpipe logger events and log uploading.
- The event-info plugin no longer fails if classes it supports by default do not exist.
- The class
IOpipeMeasurement
has been removed. - The deprecated methods
IOpipeExecution.plugin()
which took functional interfaces have been removed. - Extra method in
TraceUtils
to trace a few functional interfaces, these methods always run. - Internal optimizations and refactoring.
Bug Fixes
This release fixes some bugs and adds support for type variables used for Generic Entry Points where the handler is in a base class which uses type variables.
- The Generic Entry Point handler now correctly handles type variables used in the base class entry method arguments.
- It currently does not handle type variables within parameterized types, they will be treated as their lowest bound. (
handleRequest(T)
whereT
isList<Q extends CharSequence>
, the type passed will beList<CharSequence>
).
- It currently does not handle type variables within parameterized types, they will be treated as their lowest bound. (
- Event-info now properly works with the Generic Entry Point handler.
- Dependencies have been updated.
- Corrects exception thrown when disk percentage is NaN or Infinity.
- IOpipe now builds on Windows.
- The duration reported by the profiler is now correct.
- The following classes have been deprecated:
IOpipeMeasurement
-- This class is redundant and its functionality has been moved intoIOpipeExecution
.
Generic Entry Point for Java Lambdas
This release adds support for generic entry points for Java Lambdas, this give you the ability to wrap your methods with IOpipe without needing to modify your existing code.
Information on the usage of generic entry points is located at https://github.com/iopipe/iopipe-java/tree/v1.7.0#generic-entry-point-wrappers.
- Added a generic entry point handler which allows you to more easily wrap methods without needing to write wrappers as needed.
- Added
run()
methods which takeRequestHandler
andRequestStreamHandler
toIOpipeService
to make manual wrapping easier. IOpipeExecution.currentExecution()
will now always return a value to make the wrapper easier to use when there is no current wrapper to preventNullPointerExceptions
s.- Project dependencies have been updated.
- Better handling of recursive
IOpipeService.run()
calls. - When
RequestStreamHandler
is wrapped report the exception that the wrapped method throws rather than reporting the exception that is used to wrap it. - Fixed a bug where the Process ID call was not valid.
- Organized the README.
- Deprecated:
- The methods
IOpipeExecution.plugin()
that take method handles has been deprecated. - The class
IOpipeMeasurement
has been deprecated.
- The methods
Support SQS In Event-Info
This adds support for SQS in event-info along with fixing a few bugs and improving the performance of the agent.
- Fixed a bug where
IOPIPE_ENABLED
environment variable would cause the lambda to not be executed and throw an exception for each invocation. - SQS Event-Info Support.
- Added a means to obtain
IOpipeExecution
statically. - Refactoring to increase code quality and enhance performance.
- Internally IOpipe uses TinyLog instead of Log4j2 which gives an estimated performance increase of 1.4x.
Auto-Labels
This version adds an improvement to the labels feature with labels that are automatically added under certain circumstances.
You can read about labels at https://read.iopipe.com/labeling-your-invocations-to-understand-your-aws-lambda-invocation-data-deb606ff82f9.
This version adds support for auto-labels which allow for quick searching of invocations in the dashboard.
- Auto-Labels.
- Refactoring to increase code quality and enhance performance.
- Fixed a bug where CPU times were not recorded correctly.
- Fixed a bug where the profiler would fail in a very specific edge case.
Profiling Statistics
When profiling is enabled, you can now get a glimpse of the various Java virtual machine statistics at the start and end of your lambda execution. These statistics contain information on memory allocation, the number classes which have been loaded, the number of times the garbage collector was called, along with other statistics. Read more about profiling.