Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs-source/site/docs/deploy/buildapp.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,5 @@ This content is TBD
These are the steps to deploy the application to ak8s cluster using Helm.

- Obtain the deployment Helm chart from [here](hhtp://where)
- Edit `Values.yaml` to refelct your application
- Edit `Values.yaml` to reflect your application
- Install the Helm chart.
8 changes: 8 additions & 0 deletions docs-source/site/docs/observability/_category_.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"label": "Observability",
"position": 4,
"link": {
"type": "generated-index",
"description": "Oracle Backend for Microservices and AI provides built-in platform services to collect and visualize metrics, logs and traces from system and application workloads."
}
}
22 changes: 22 additions & 0 deletions docs-source/site/docs/observability/acces.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
title: Access SigNoz
sidebar_position: 2
---
## How to access SigNoz

1. Get the _admin_ email and password for SigNoz

```shell
kubectl -n observability get secret signoz-authn -o jsonpath='{.data.email}' | base64 -d
kubectl -n observability get secret signoz-authn -o jsonpath='{.data.password}' | base64 -d
```

1. Expose the SigNoz user interface (UI) using this command:

```shell
kubectl -n observability port-forward svc/obaas-signoz-frontend 3301:3301
```

1. Open [SigNoz Login](http://localhost:3301/login) in a browser and login with the _admin_ email and the _password_ you have retrieved.

![SigNoz UI](images/obaas-signoz-ui.png)
207 changes: 207 additions & 0 deletions docs-source/site/docs/observability/configure.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,207 @@
---
title: Configure Applications for SigNoz
sidebar_position: 5
---
## Configure applications for SigNoz Observability

In order for SigNoz to be able to collect logs, metrics and traces from applications, some configurations are required to be added.

### Configure OpenTelemetry and Micrometer

[OpenTelemetry zero-code instrumentation](https://opentelemetry.io/docs/zero-code/java/spring-boot-starter/getting-started/) enables adding observability to Spring Boot based applications without changing any code. Similarly [Micrometer](https://docs.micrometer.io/micrometer/reference/observation/projects.html) enables instrumentation of JVM based applications and can be configured using Spring Boot starters.

:::note
The versions in the below pom.xml might be outdated.
:::

```xml
<dependencies>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-core</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-tracing-bridge-otel</artifactId>
<exclusions>
<exclusion>
<groupId>io.opentelemetry.instrumentation</groupId>
<artifactId>opentelemetry-instrumentation-api-incubator</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-exporter-otlp</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-tracing</artifactId>
</dependency>
<dependency>
<groupId>io.opentelemetry.instrumentation</groupId>
<artifactId>opentelemetry-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>net.ttddyy.observation</groupId>
<artifactId>datasource-micrometer-spring-boot</artifactId>
</dependency>
<dependency>
<groupId>com.oracle.database.spring</groupId>
<artifactId>oracle-spring-boot-starter-ucp</artifactId>
<type>pom</type>
</dependency>
<dependency>
<groupId>io.opentelemetry.instrumentation</groupId>
<artifactId>opentelemetry-oracle-ucp-11.2</artifactId>
</dependency>
</dependencies>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.opentelemetry.instrumentation</groupId>
<artifactId>opentelemetry-instrumentation-bom</artifactId>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-tracing-bom</artifactId>
<version>${micrometer-tracing.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
```

### Configure Datasource Observability

[datasource-micrometer](https://github.com/jdbc-observations/datasource-micrometer) and [Oracle Universal Connection Pool Instrumentation](https://github.com/open-telemetry/opentelemetry-java-instrumentation/tree/main/instrumentation/oracle-ucp-11.2) can be configured to enable observability for Database connections and queries.

:::note
The versions in the below pom.xml might be outdated.
:::

```xml
<dependencies>
<dependency>
<groupId>net.ttddyy.observation</groupId>
<artifactId>datasource-micrometer-spring-boot</artifactId>
</dependency>
<dependency>
<groupId>io.opentelemetry.instrumentation</groupId>
<artifactId>opentelemetry-oracle-ucp-11.2</artifactId>
</dependency>
</dependencies>
```

### Configure Spring Boot Actuator

When you deploy an application with Oracle Backend for Microservices and AI CLI or Visual Code Extension, provided you included the Spring Actuator in your application, SigNoz will automatically find your application (using the annotations) and start collecting metrics. These metrics will be included in both the Spring Boot Observability dashboard and the Spring Boot Statistic dashboard automatically.

To include the Actuator in your application, add the following dependencies to your Maven POM or equivalent:

```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
```

You must also add the configuration similar to one given below, after customizing it for your application, to your Spring `application.yaml`

```yaml
spring:
threads:
virtual:
enabled: true
jpa:
hibernate:
ddl-auto: validate
properties:
hibernate:
dialect: org.hibernate.dialect.OracleDialect
format_sql: true
show-sql: true

eureka:
instance:
hostname: ${spring.application.name}
preferIpAddress: true
client:
service-url:
defaultZone: ${eureka.service-url}
fetch-registry: true
register-with-eureka: true
enabled: true

management:
endpoint:
health:
show-details: always
show-components: always
endpoints:
web:
exposure:
include: "*"
metrics:
tags:
application: ${spring.application.name}
distribution:
percentiles[http.server.requests]: 0.5, 0.90, 0.95, 0.99
percentiles-histogram[http.server.requests]: true
slo[http.server.requests]: 100ms, 250ms, 500ms, 1s, 2s, 5s, 10s, 30s
percentiles[http.client.requests]: 0.5, 0.90, 0.95, 0.99
percentiles-histogram[http.client.requests]: true
slo[http.client.requests]: 100ms, 250ms, 500ms, 1s, 2s, 5s, 10s, 30s
health:
probes:
enabled: true
tracing:
sampling:
probability: 1.0
info:
os:
enabled: true
env:
enabled: true
java:
enabled: true
observations:
key-values:
app: ${spring.application.name}

logging:
level:
root: INFO
com.example: INFO
org.springframework.web.filter.AbstractRequestLoggingFilter: INFO

jdbc:
datasource-proxy:
query:
enable-logging: true
log-level: INFO
include-parameter-values: true
```

The Oracle Backend for Microservices and AI platform adds following annotations to your application pods for SigNoz to start scraping the actuator endpoint for metrics.

```yaml
signoz.io/path: /actuator/prometheus
signoz.io/port: "8080"
signoz.io/scrape: "true"
```

It also adds the `OTEL_EXPORTER_OTLP_ENDPOINT` to pod environment variables for the OpenTelemetry instrumentation libraries to access the the OpenTelemtry collector of SigNoz.

```yaml
- name: OTEL_EXPORTER_OTLP_ENDPOINT
value: http://obaas-signoz-otel-collector.observability:4318
```
94 changes: 94 additions & 0 deletions docs-source/site/docs/observability/dashboards.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
---
title: Pre-installed dashboards
sidebar_position: 4
---
:::note
More details can be found in the [SigNoz Documentation](https://signoz.io/docs/introduction/).
:::

## Pre-installed dashboards

The following dashboards are pre-installed in SigNoz:

- [Spring Boot Observability](#spring-boot-observability)
- [Spring Boot Observability](#spring-boot-observability)
- [Spring Boot Statistics](#spring-boot-statistics)
- [Oracle Database Dashboard](#oracle-database-dashboard)
- [Kube State Metrics Dashboard](#kube-state-metrics-dashboard)
- [Apache APISIX Dashboard](#apache-apisix-dashboard)

### Spring Boot Observability

This dashboard provides details of one or more Spring Boot applications including the following:

- The number of HTTP requests received by the application
- A breakdown of which URL paths requests were received for
- The average duration of requests by path
- The number of exceptions encountered by the application
- Details of 2xx (that is, successful) and 5xx (that is, exceptions) requests
- The request rate per second over time, by path
- Log messages from the service

You may adjust the time period and to drill down into issues, and search the logs for particular messages. This dashboard is designed for Spring Boot 3.x applications. Some features may work for Spring Boot 2.x applications.

Here is an example of this dashboard displaying data for a simple application:

![Spring Boot Observability Dashboard](images/spring-boot-observability-dashboard.png)

### Spring Boot Statistics

This dashboard provides more in-depth information about services including the following:

- JVM statistic like heap and non-heap memory usage, and details of garbage collection
- Load average and open files
- Database connection pool statistics (for HikariCP)
- HTTP request statistics
- Logging (logback) statistics

You may adjust the time period and to drill down into issues, and search the logs for particular messages. This dashboard is designed for Spring Boot 3.x applications. Some features may work for Spring Boot 2.x applications.

Here is an example of this dashboard displaying data for a simple application:

![Spring Boot Stats Dashboard](images/spring-boot-stats-dashboard.png)

### Oracle Database Dashboard

This dashboard provides details about the Oracle Database including:

- SGA and PGA size
- Active sessions
- User commits
- Execute count
- CPU count and platform
- Top SQL
- Wait time statistics by class

Here is an example of this dashboard:

![Oracle Database Dashboard](images/db-dashboard.png)

### Kube State Metrics Dashboard

This dashboard provides details of the Kubernetes cluster including:

- Pod capacity and requests for CPU and memory
- Node availability
- Deployment, Stateful Set, Pod, Job and Container statistics
- Details of horizontal pod autoscalers
- Details of persistent volume claims

Here is an example of this dashboard:

![Kube State Metrics Dashboard](images/kube-state-metrics-dashboard.png)

### Apache APISIX Dashboard

This dashboard provides details of the APISIX API Gateway including:

- Total Requests
- NGINX Connection State
- Etcd modifications

Here is an example of this dashboard:

![Apache APISIX Dashboard](images/apache-apisix-dashboard.png)
9 changes: 9 additions & 0 deletions docs-source/site/docs/observability/dbexporter.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
title: Oracle Database Metrics Exporter
sidebar_position: 6
---
## Oracle Database Metrics Exporter

Oracle Database Metrics Exporter aims to provide observability for the Oracle Database so that users can understand performance and diagnose issues easily across applications and database. Oracle Database Metrics Exporter deliver functionality to support both cloud and on-premises databases, including those running in Kubernetes and containers.

See the [documentation](https://oracle.github.io/oracle-db-appdev-monitoring/) for how to install and configure Oracle Database Metrics Exporter.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
39 changes: 39 additions & 0 deletions docs-source/site/docs/observability/metricslogstraces.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
title: Metrics, Logs and Traces
sidebar_position: 3
---
:::note
More details can be found in the [SigNoz Documentation](https://signoz.io/docs/introduction/).
:::

## Metrics

To access metrics in SigNoz, click on _Services_ in the menu to see the list of applications.

![Service List](images/service-list.png)

Click on any of the services, to see its metrics in a dashboard.

![Service Metrics](images/service-metrics.png)

## Logs

To access logs in SigNoz, click on _Logs_ in the menu to access the Log Explorer where logs for all the applications and platform services can be accessed.

![SigNoz logs](images/signoz-logs.png)

Logs can be filtered based on Namespaces, Deployments, Pods etc. Clicking on any log line will show more details regarding a log event.

![SigNoz Logs Details](images/signoz-logs-details.png)

## Traces

To access Traces in SigNoz, click on _Traces_ in the menu to access the Traces view where all trace events can be accessed.

![SigNoz Traces](images/signoz-traces.png)

Traces can be filtered based on Service, HTTP Routes etc. Click on a trace to see its details.

![SigNoz Traces Details](images/signoz-traces-details.png)

Logs for a trace event can directly be accessed using the _Go to related logs_ link.
Loading