Observability is a measure of how well internal states of a system can be inferred from knowledge of its external outputs. Monitoring, logging, and distributed tracing are key methods that reveal the internal state of the system to provide the observability. Ballerina becomes fully observable by exposing itself via these three methods to various external systems allowing to monitor metrics such as request count and response time statistics, analyze logs, and perform distributed tracing.
Ballerina makes it easy to write microservices that integrate APIs.
A compiled, transactional, statically and strongly typed programming language with textual and graphical syntaxes. Ballerina incorporates fundamental concepts of distributed system integration and offers a type safe, concurrent environment to implement microservices.
A type system that embraces network payload variability with primitive, object, union, and tuple types.
An execution model composed of lightweight parallel worker units that are non-blocking where no function can lock an executing thread manifesting sequence concurrency.
You can use one of the following options to try out Ballerina.
You can download the Ballerina distribution at http://ballerina.io.
Alternatively, you can install Ballerina from the source using the following instructions.
-
Clone this repository using the following command.
git clone --recursive https://github.com/ballerina-platform/ballerina-lang
If you download the sources, you need to update the git submodules using the following command.
git submodule update --init
-
Run the Maven command
mvn clean install
from the repository root directory. -
Extract the Ballerina distribution created at
distribution/zip/ballerina/target/ballerina-<version>-SNAPSHOT.zip
.
As an open source project, Ballerina welcomes contributions from the community. To start contributing, read these contribution guidelines for information on how you should go about contributing to our project.
Check the issue tracker for open issues that interest you. We look forward to receiving your contributions.
Ballerina code is distributed under Apache license 2.0.
The following are the extensions available in this repository.
Tracing Extensions can be found here https://github.com/ballerina-platform/ballerina-observability/tree/master/tracing-extensions/modules
- ballerina-jaeger-extension
- ballerina-zipkin-extension
- ballerina-noop-extension
Metrics Extensions can be found here https://github.com/ballerina-platform/ballerina-observability/tree/master/metrics-extensions/modules
- ballerina-micrometer-extension
- ballerina-prometheus-extension
- The ballerina-dev@googlegroups.com mailing list is for discussing code changes to the Ballerina project.
- Chat live with us on our Slack channel.
- Technical questions should be posted on Stack Overflow with the #ballerina tag.