From 7805af592ee9cd626f995c48be06d78b909c8f60 Mon Sep 17 00:00:00 2001 From: Mark Nelson Date: Mon, 28 Oct 2024 09:25:53 -0400 Subject: [PATCH 01/17] working on adb tns issue Signed-off-by: Mark Nelson --- Makefile | 6 +++--- collector/collector.go | 6 ++++++ main.go | 2 ++ 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index fae1c21..46f5228 100644 --- a/Makefile +++ b/Makefile @@ -3,7 +3,7 @@ OS_TYPE ?= $(shell uname -s | tr '[:upper:]' '[:lower:]') ARCH_TYPE ?= $(subst x86_64,amd64,$(patsubst i%86,386,$(ARCH))) GOOS ?= $(shell go env GOOS) GOARCH ?= $(shell go env GOARCH) -VERSION ?= 1.5.0 +VERSION ?= 1.5.1 LDFLAGS := -X main.Version=$(VERSION) GOFLAGS := -ldflags "$(LDFLAGS) -s -w" BUILD_ARGS = --build-arg VERSION=$(VERSION) @@ -83,10 +83,10 @@ push-images: @make --no-print-directory push-oraclelinux-image docker: - docker build --no-cache --progress=plain $(BUILD_ARGS) -t "$(IMAGE_ID)" --build-arg BASE_IMAGE=$(ORACLE_LINUX_BASE_IMAGE) . + docker build --no-cache --progress=plain $(BUILD_ARGS) -t "$(IMAGE_ID)-amd64" --build-arg BASE_IMAGE=$(ORACLE_LINUX_BASE_IMAGE) . docker-arm: - docker build --no-cache --progress=plain $(BUILD_ARGS) -t "$(IMAGE_ID)" --build-arg BASE_IMAGE=$(ORACLE_LINUX_BASE_IMAGE) --build-arg GOARCH=arm64 . + docker build --no-cache --progress=plain $(BUILD_ARGS) -t "$(IMAGE_ID)-arm64" --build-arg BASE_IMAGE=$(ORACLE_LINUX_BASE_IMAGE) --build-arg GOARCH=arm64 . push-oraclelinux-image: docker push $(IMAGE_ID) diff --git a/collector/collector.go b/collector/collector.go index 6ef7c7f..cbf5fba 100644 --- a/collector/collector.go +++ b/collector/collector.go @@ -35,6 +35,7 @@ type Exporter struct { user string password string connectString string + configDir string duration, error prometheus.Gauge totalScrapes prometheus.Counter scrapeErrors *prometheus.CounterVec @@ -53,6 +54,7 @@ type Config struct { Password string ConnectString string DbRole string + ConfigDir string MaxIdleConns int MaxOpenConns int CustomMetrics string @@ -114,6 +116,7 @@ func NewExporter(logger log.Logger, cfg *Config) (*Exporter, error) { user: cfg.User, password: cfg.Password, connectString: cfg.ConnectString, + configDir: cfg.ConfigDir, duration: prometheus.NewGauge(prometheus.GaugeOpts{ Namespace: namespace, Subsystem: exporterName, @@ -367,6 +370,9 @@ func (e *Exporter) connect() error { var P godror.ConnectionParams P.Username, P.Password, P.ConnectString = e.user, godror.NewPassword(e.password), e.connectString + // if TNS_ADMIN env var is set, set ConfigDir to that location + P.ConfigDir = e.configDir + if strings.ToUpper(e.config.DbRole) == "SYSDBA" { P.IsSysDBA = true } diff --git a/main.go b/main.go index b1e7588..f84990b 100644 --- a/main.go +++ b/main.go @@ -59,6 +59,7 @@ func main() { password := os.Getenv("DB_PASSWORD") connectString := os.Getenv("DB_CONNECT_STRING") dbrole := os.Getenv("DB_ROLE") + tnsadmin := os.Getenv("TNS_ADMIN") vaultID, useVault := os.LookupEnv("OCI_VAULT_ID") if useVault { @@ -85,6 +86,7 @@ func main() { Password: password, ConnectString: connectString, DbRole: dbrole, + ConfigDir: tnsadmin, MaxOpenConns: *maxOpenConns, MaxIdleConns: *maxIdleConns, CustomMetrics: *customMetrics, From 8c07d6406a8402f1fc89ff583b9b714b4b56def4 Mon Sep 17 00:00:00 2001 From: Mark Nelson Date: Mon, 28 Oct 2024 10:25:13 -0400 Subject: [PATCH 02/17] wip arm Signed-off-by: Mark Nelson --- Dockerfile | 15 +++++++++------ Makefile | 2 +- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/Dockerfile b/Dockerfile index a7a0382..f743014 100644 --- a/Dockerfile +++ b/Dockerfile @@ -31,18 +31,21 @@ LABEL org.opencontainers.image.description="Oracle Database Observability Export ENV VERSION ${VERSION:-1.0.0} ENV DEBIAN_FRONTEND=noninteractive +ARG GOARCH +ENV GOARCH ${GOARCH:-amd64} + RUN if [ "$GOARCH" = "amd64" ]; then \ - microdnf install -y oracle-instantclient-release-el8 && microdnf install -y oracle-instantclient-basic && \ + microdnf install -y oracle-instantclient-release-23ai-el8 && microdnf install -y oracle-instantclient-basic && \ microdnf install glibc-2.28-251.0.2.el8_10.4 \ ; else \ - microdnf install oracle-release-el8 && \ - microdnf install -y oracle-instantclient19.23-basic && \ + wget https://download.oracle.com/otn_software/linux/instantclient/instantclient-basic-linux-arm64.rpm && \ + microdnf localinstall -y instantclient-basic-linux-arm64.rpm && \ microdnf install glibc-2.28-251.0.2.el8_10.4 \ ; fi -ENV LD_LIBRARY_PATH /usr/lib/oracle/21/client64/lib -ENV PATH $PATH:/usr/lib/oracle/21/client64/bin -ENV ORACLE_HOME /usr/lib/oracle/21/client64 +ENV LD_LIBRARY_PATH /usr/lib/oracle/23/client64/lib +ENV PATH $PATH:/usr/lib/oracle/23/client64/bin +ENV ORACLE_HOME /usr/lib/oracle/23/client64 COPY --from=build /go/src/oracledb_exporter/oracle-db-appdev-monitoring /oracledb_exporter ADD ./default-metrics.toml /default-metrics.toml diff --git a/Makefile b/Makefile index 46f5228..7e25443 100644 --- a/Makefile +++ b/Makefile @@ -83,7 +83,7 @@ push-images: @make --no-print-directory push-oraclelinux-image docker: - docker build --no-cache --progress=plain $(BUILD_ARGS) -t "$(IMAGE_ID)-amd64" --build-arg BASE_IMAGE=$(ORACLE_LINUX_BASE_IMAGE) . + docker build --no-cache --progress=plain $(BUILD_ARGS) -t "$(IMAGE_ID)-amd64" --build-arg BASE_IMAGE=$(ORACLE_LINUX_BASE_IMAGE) --build-arg GOARCH=amd64 . docker-arm: docker build --no-cache --progress=plain $(BUILD_ARGS) -t "$(IMAGE_ID)-arm64" --build-arg BASE_IMAGE=$(ORACLE_LINUX_BASE_IMAGE) --build-arg GOARCH=arm64 . From b6100d3e748c1ca126bdfa2895fc110937cae2db Mon Sep 17 00:00:00 2001 From: Mark Nelson Date: Mon, 28 Oct 2024 10:54:48 -0400 Subject: [PATCH 03/17] wip arm Signed-off-by: Mark Nelson --- Dockerfile | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index f743014..ea476af 100644 --- a/Dockerfile +++ b/Dockerfile @@ -35,17 +35,20 @@ ARG GOARCH ENV GOARCH ${GOARCH:-amd64} RUN if [ "$GOARCH" = "amd64" ]; then \ + export DBVER=23 && \ microdnf install -y oracle-instantclient-release-23ai-el8 && microdnf install -y oracle-instantclient-basic && \ microdnf install glibc-2.28-251.0.2.el8_10.4 \ ; else \ + export DBVER=19.24 && \ + microdnf install wget libaio && \ wget https://download.oracle.com/otn_software/linux/instantclient/instantclient-basic-linux-arm64.rpm && \ - microdnf localinstall -y instantclient-basic-linux-arm64.rpm && \ + rpm -ivh instantclient-basic-linux-arm64.rpm && \ microdnf install glibc-2.28-251.0.2.el8_10.4 \ ; fi -ENV LD_LIBRARY_PATH /usr/lib/oracle/23/client64/lib -ENV PATH $PATH:/usr/lib/oracle/23/client64/bin -ENV ORACLE_HOME /usr/lib/oracle/23/client64 +ENV LD_LIBRARY_PATH /usr/lib/oracle/23/client64/lib:usr/lib/oracle/19.24/client64/lib +ENV PATH $PATH:/usr/lib/oracle/23/client64/bin:usr/lib/oracle/19.24/client64/bin +ENV ORACLE_HOME /usr/lib/oracle/${DBVER:-23}/client64 COPY --from=build /go/src/oracledb_exporter/oracle-db-appdev-monitoring /oracledb_exporter ADD ./default-metrics.toml /default-metrics.toml From 12685959997f1547a42a1b2a7b6599fab35debd2 Mon Sep 17 00:00:00 2001 From: Mark Nelson Date: Mon, 28 Oct 2024 11:00:03 -0400 Subject: [PATCH 04/17] wip arm Signed-off-by: Mark Nelson --- Dockerfile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Dockerfile b/Dockerfile index ea476af..edea78a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -34,6 +34,9 @@ ENV DEBIAN_FRONTEND=noninteractive ARG GOARCH ENV GOARCH ${GOARCH:-amd64} +# note: the 23ai arm drivers are not in yum yet, when they are can switch this to just use yum and not need +# to wget the driver for arm. also note that the permalink for otn download of drivers does not have version +# in it, and does not appear to be a link vith version in it, so that link is very brittle and could break build RUN if [ "$GOARCH" = "amd64" ]; then \ export DBVER=23 && \ microdnf install -y oracle-instantclient-release-23ai-el8 && microdnf install -y oracle-instantclient-basic && \ From a649e3f4b6c5006b51e48690739140df2a839135 Mon Sep 17 00:00:00 2001 From: Mark Nelson Date: Mon, 28 Oct 2024 11:19:10 -0400 Subject: [PATCH 05/17] wip arm Signed-off-by: Mark Nelson --- Dockerfile | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index edea78a..5fd3203 100644 --- a/Dockerfile +++ b/Dockerfile @@ -38,20 +38,19 @@ ENV GOARCH ${GOARCH:-amd64} # to wget the driver for arm. also note that the permalink for otn download of drivers does not have version # in it, and does not appear to be a link vith version in it, so that link is very brittle and could break build RUN if [ "$GOARCH" = "amd64" ]; then \ - export DBVER=23 && \ microdnf install -y oracle-instantclient-release-23ai-el8 && microdnf install -y oracle-instantclient-basic && \ microdnf install glibc-2.28-251.0.2.el8_10.4 \ ; else \ - export DBVER=19.24 && \ microdnf install wget libaio && \ wget https://download.oracle.com/otn_software/linux/instantclient/instantclient-basic-linux-arm64.rpm && \ rpm -ivh instantclient-basic-linux-arm64.rpm && \ + ln -s /usr/lib/oracle/19.24 /usr/lib/oracle/23 && \ microdnf install glibc-2.28-251.0.2.el8_10.4 \ ; fi ENV LD_LIBRARY_PATH /usr/lib/oracle/23/client64/lib:usr/lib/oracle/19.24/client64/lib ENV PATH $PATH:/usr/lib/oracle/23/client64/bin:usr/lib/oracle/19.24/client64/bin -ENV ORACLE_HOME /usr/lib/oracle/${DBVER:-23}/client64 +ENV ORACLE_HOME /usr/lib/oracle/23/client64 COPY --from=build /go/src/oracledb_exporter/oracle-db-appdev-monitoring /oracledb_exporter ADD ./default-metrics.toml /default-metrics.toml From bdcdd44207125961ccf365caa4ba97d106855a72 Mon Sep 17 00:00:00 2001 From: Mark Nelson Date: Mon, 28 Oct 2024 11:57:12 -0400 Subject: [PATCH 06/17] wip arm Signed-off-by: Mark Nelson --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index 5fd3203..74c4fdd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -57,6 +57,7 @@ ADD ./default-metrics.toml /default-metrics.toml # create the mount point for alert log exports (default location) RUN mkdir /log && chown 1000:1000 /log +RUN mkdir /wallet && chown 1000:1000 /wallet EXPOSE 9161 From be959a0fe2d6ab9ef5e240cc54aaaf6fba716756 Mon Sep 17 00:00:00 2001 From: Mark Nelson Date: Mon, 28 Oct 2024 13:01:54 -0400 Subject: [PATCH 07/17] update readme for podman volume mount issue and TNS_ADMIN variable Signed-off-by: Mark Nelson --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 883a913..c8de401 100644 --- a/README.md +++ b/README.md @@ -477,6 +477,7 @@ Now, you provide the connection details using these variables: - `DB_CONNECT_STRING` is the connection string, e.g., `devdb_tp?TNS_ADMIN=/wallet` - `DB_ROLE` (Optional) can be set to `SYSDBA` or `SYSOPER` if you want to connect with one of those roles, however Oracle recommends that you connect with the lowest possible privileges and roles necessary for the exporter to run. - `ORACLE_HOME` is the location of the Oracle Instant Client, i.e., `/lib/oracle/21/client64/lib`. If you built your own container image, the path may be different. +- `TNS_ADMIN` is the location of your (unzipped) wallet. The `DIRECTORY` set in the `sqlnet.ora` file must match the path that it will be mounted on inside the container. To run the exporter in a container and expose the port, use a command like this, with the appropriate values for the environment variables, and mounting your `wallet` directory as `/wallet` in the container to provide access to the wallet: @@ -489,6 +490,7 @@ docker run -it --rm \ -p 9161:9161 \ container-registry.oracle.com/database/observability-exporter:1.5.0 ``` +> **Note:** If you are using `podman` you must specify the `:z` suffix on the volume mount so that the container will be able to access the files in the volume. For example: `-v ./wallet:/wallet:z` ### Test/demo environment with Docker Compose From f13f964b4b75344c5be888279cf9646be764f70c Mon Sep 17 00:00:00 2001 From: Mark Nelson Date: Mon, 28 Oct 2024 13:50:21 -0400 Subject: [PATCH 08/17] update prometheus dep Signed-off-by: Mark Nelson --- go.mod | 14 +++++++------- go.sum | 15 +++++++++++++++ 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/go.mod b/go.mod index 0344ff2..7a6ac36 100644 --- a/go.mod +++ b/go.mod @@ -10,8 +10,8 @@ require ( github.com/go-kit/log v0.2.1 github.com/godror/godror v0.44.7 github.com/oracle/oci-go-sdk/v65 v65.75.0 - github.com/prometheus/client_golang v1.20.2 - github.com/prometheus/common v0.59.1 + github.com/prometheus/client_golang v1.20.4 + github.com/prometheus/common v0.60.1 github.com/prometheus/exporter-toolkit v0.11.0 ) @@ -31,13 +31,13 @@ require ( github.com/prometheus/procfs v0.15.1 // indirect github.com/sony/gobreaker v0.5.0 // indirect github.com/xhit/go-str2duration/v2 v2.1.0 // indirect - golang.org/x/crypto v0.26.0 // indirect + golang.org/x/crypto v0.27.0 // indirect golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect - golang.org/x/net v0.28.0 // indirect - golang.org/x/oauth2 v0.22.0 // indirect + golang.org/x/net v0.29.0 // indirect + golang.org/x/oauth2 v0.23.0 // indirect golang.org/x/sync v0.8.0 // indirect - golang.org/x/sys v0.23.0 // indirect - golang.org/x/text v0.17.0 // indirect + golang.org/x/sys v0.25.0 // indirect + golang.org/x/text v0.18.0 // indirect google.golang.org/protobuf v1.34.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect ) diff --git a/go.sum b/go.sum index d7c2b2e..bbefb16 100644 --- a/go.sum +++ b/go.sum @@ -56,12 +56,16 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_golang v1.20.2 h1:5ctymQzZlyOON1666svgwn3s6IKWgfbjsejTMiXIyjg= github.com/prometheus/client_golang v1.20.2/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= +github.com/prometheus/client_golang v1.20.4 h1:Tgh3Yr67PaOv/uTqloMsCEdeuFTatm5zIq5+qNN23vI= +github.com/prometheus/client_golang v1.20.4/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.58.0 h1:N+N8vY4/23r6iYfD3UQZUoJPnUYAo7v6LG5XZxjZTXo= github.com/prometheus/common v0.58.0/go.mod h1:GpWM7dewqmVYcd7SmRaiWVe9SSqjf0UrwnYnpEZNuT0= github.com/prometheus/common v0.59.1 h1:LXb1quJHWm1P6wq/U824uxYi4Sg0oGvNeUm1z5dJoX0= github.com/prometheus/common v0.59.1/go.mod h1:GpWM7dewqmVYcd7SmRaiWVe9SSqjf0UrwnYnpEZNuT0= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/exporter-toolkit v0.11.0 h1:yNTsuZ0aNCNFQ3aFTD2uhPOvr4iD7fdBvKPAEGkNf+g= github.com/prometheus/exporter-toolkit v0.11.0/go.mod h1:BVnENhnNecpwoTLiABx7mrPB/OLRIgN74qlQbV+FK1Q= github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= @@ -85,21 +89,32 @@ github.com/xhit/go-str2duration/v2 v2.1.0 h1:lxklc02Drh6ynqX+DdPyp5pCKLUQpRT8bp8 github.com/xhit/go-str2duration/v2 v2.1.0/go.mod h1:ohY8p+0f07DiV6Em5LKB0s2YpLtXVyJfNt1+BlmyAsU= golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw= golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54= +golang.org/x/crypto v0.27.0 h1:GXm2NjJrPaiv/h1tb2UH8QfgC/hOf/+z0p6PT8o1w7A= +golang.org/x/crypto v0.27.0/go.mod h1:1Xngt8kV6Dvbssa53Ziq6Eqn0HqbZi5Z6R0ZpwQzt70= golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8= golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= golang.org/x/net v0.28.0 h1:a9JDOJc5GMUJ0+UDqmLT86WiEy7iWyIhz8gz8E4e5hE= golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg= +golang.org/x/net v0.29.0 h1:5ORfpBpCs4HzDYoodCDBbwHzdR5UrLBZ3sOnUJmFoHo= +golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0= golang.org/x/oauth2 v0.22.0 h1:BzDx2FehcG7jJwgWLELCdmLuxk2i+x9UDpSiss2u0ZA= golang.org/x/oauth2 v0.22.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs= +golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.23.0 h1:YfKFowiIMvtgl1UERQoTPPToxltDeZfbj4H7dVUCwmM= golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34= +golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.23.0 h1:F6D4vR+EHoL9/sWAWgAR1H2DcHr4PareCbAaCo1RpuU= golang.org/x/term v0.23.0/go.mod h1:DgV24QBUrK6jhZXl+20l6UWznPlwAHm1Q1mGHtydmSk= +golang.org/x/term v0.24.0 h1:Mh5cbb+Zk2hqqXNO7S1iTjEphVL+jb8ZWaqh/g+JWkM= golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc= golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= +golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224= +golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From 0ab2e8014f0efdc2ebaa02f545bf8af187faf37e Mon Sep 17 00:00:00 2001 From: Mark Nelson Date: Mon, 28 Oct 2024 14:00:28 -0400 Subject: [PATCH 09/17] update prom client Signed-off-by: Mark Nelson --- README.md | 3 +++ go.mod | 2 +- go.sum | 2 ++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c8de401..513ba47 100644 --- a/README.md +++ b/README.md @@ -479,6 +479,8 @@ Now, you provide the connection details using these variables: - `ORACLE_HOME` is the location of the Oracle Instant Client, i.e., `/lib/oracle/21/client64/lib`. If you built your own container image, the path may be different. - `TNS_ADMIN` is the location of your (unzipped) wallet. The `DIRECTORY` set in the `sqlnet.ora` file must match the path that it will be mounted on inside the container. +> **Note:** Specify the path to your wallet using the `TNS_ADMIN` environment variable rather than adding it to the `DB_CONNECT_STRING`. + To run the exporter in a container and expose the port, use a command like this, with the appropriate values for the environment variables, and mounting your `wallet` directory as `/wallet` in the container to provide access to the wallet: ```bash @@ -653,6 +655,7 @@ You may provide the connection details using these variables: - `DB_CONNECT_STRING` is the connection string, e.g., `localhost:1521/freepdb1` - `DB_ROLE` (Optional) can be set to `SYSDBA` or `SYSOPER` if you want to connect with one of those roles, however Oracle recommends that you connect with the lowest possible privileges and roles necessary for the exporter to run. - `ORACLE_HOME` is the location of the Oracle Instant Client, e.g., `/lib/oracle/21/client64/lib`. +- `TNS_ADMIN` is the location of your (unzipped) wallet. The `DIRECTORY` set in the `sqlnet.ora` file must match the path that it will be mounted on inside the container. The following example puts the logfile in the current location with the filename `alert.log` and loads the default matrics file (`default-metrics,toml`) from the current location. diff --git a/go.mod b/go.mod index 7a6ac36..2c05451 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/go-kit/log v0.2.1 github.com/godror/godror v0.44.7 github.com/oracle/oci-go-sdk/v65 v65.75.0 - github.com/prometheus/client_golang v1.20.4 + github.com/prometheus/client_golang v1.20.5 github.com/prometheus/common v0.60.1 github.com/prometheus/exporter-toolkit v0.11.0 ) diff --git a/go.sum b/go.sum index bbefb16..5da100c 100644 --- a/go.sum +++ b/go.sum @@ -58,6 +58,8 @@ github.com/prometheus/client_golang v1.20.2 h1:5ctymQzZlyOON1666svgwn3s6IKWgfbjs github.com/prometheus/client_golang v1.20.2/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_golang v1.20.4 h1:Tgh3Yr67PaOv/uTqloMsCEdeuFTatm5zIq5+qNN23vI= github.com/prometheus/client_golang v1.20.4/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.58.0 h1:N+N8vY4/23r6iYfD3UQZUoJPnUYAo7v6LG5XZxjZTXo= From cc963138bd7cea3a6f8138d3ab2ef2922e7fb24d Mon Sep 17 00:00:00 2001 From: Mark Nelson Date: Mon, 28 Oct 2024 14:03:46 -0400 Subject: [PATCH 10/17] udpate godror Signed-off-by: Mark Nelson --- go.mod | 2 +- go.sum | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 2c05451..b30ea6f 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/BurntSushi/toml v1.4.0 github.com/alecthomas/kingpin/v2 v2.4.0 github.com/go-kit/log v0.2.1 - github.com/godror/godror v0.44.7 + github.com/godror/godror v0.44.8 github.com/oracle/oci-go-sdk/v65 v65.75.0 github.com/prometheus/client_golang v1.20.5 github.com/prometheus/common v0.60.1 diff --git a/go.sum b/go.sum index 5da100c..7711cfe 100644 --- a/go.sum +++ b/go.sum @@ -26,6 +26,8 @@ github.com/godror/godror v0.44.6 h1:3Aw45jpKkPsss80DVy4/XiqXUPCsHmW0efSHBQFi0h4= github.com/godror/godror v0.44.6/go.mod h1:KJwMtQpK9o3WdEiNw7qvgSk827YDLj9MV/bXSzvUzlo= github.com/godror/godror v0.44.7 h1:fGxtxozidwBR3C1FVTrMiH77maOnMA4HqltDS/YM7O0= github.com/godror/godror v0.44.7/go.mod h1:KJwMtQpK9o3WdEiNw7qvgSk827YDLj9MV/bXSzvUzlo= +github.com/godror/godror v0.44.8 h1:20AAK8BWZasXuRkX/vhbSpnAqBMXB9fngsdfMJ4pNgU= +github.com/godror/godror v0.44.8/go.mod h1:KJwMtQpK9o3WdEiNw7qvgSk827YDLj9MV/bXSzvUzlo= github.com/godror/knownpb v0.1.2 h1:icMyYsYVpGmzhoVA01xyd0o4EaubR31JPK1UxQWe4kM= github.com/godror/knownpb v0.1.2/go.mod h1:zs9hH+lwj7mnPHPnKCcxdOGz38Axa9uT+97Ng+Nnu5s= github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw= From aa5176f6f135ddcf351730e30202d8e7cb45de90 Mon Sep 17 00:00:00 2001 From: Mark Nelson Date: Mon, 28 Oct 2024 14:14:36 -0400 Subject: [PATCH 11/17] update prom exporter-tk Signed-off-by: Mark Nelson --- go.mod | 2 +- go.sum | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index b30ea6f..c89bc28 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,7 @@ require ( github.com/oracle/oci-go-sdk/v65 v65.75.0 github.com/prometheus/client_golang v1.20.5 github.com/prometheus/common v0.60.1 - github.com/prometheus/exporter-toolkit v0.11.0 + github.com/prometheus/exporter-toolkit v0.12.0 ) require ( diff --git a/go.sum b/go.sum index 7711cfe..eac195d 100644 --- a/go.sum +++ b/go.sum @@ -72,6 +72,10 @@ github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPA github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/exporter-toolkit v0.11.0 h1:yNTsuZ0aNCNFQ3aFTD2uhPOvr4iD7fdBvKPAEGkNf+g= github.com/prometheus/exporter-toolkit v0.11.0/go.mod h1:BVnENhnNecpwoTLiABx7mrPB/OLRIgN74qlQbV+FK1Q= +github.com/prometheus/exporter-toolkit v0.12.0 h1:DkE5RcEZR3lQA2QD5JLVQIf41dFKNsVMXFhgqcif7fo= +github.com/prometheus/exporter-toolkit v0.12.0/go.mod h1:fQH0KtTn0yrrS0S82kqppRjDDiwMfIQUwT+RBRRhwUc= +github.com/prometheus/exporter-toolkit v0.13.0 h1:lmA0Q+8IaXgmFRKw09RldZmZdnvu9wwcDLIXGmTPw1c= +github.com/prometheus/exporter-toolkit v0.13.0/go.mod h1:2uop99EZl80KdXhv/MxVI2181fMcwlsumFOqBecGkG0= github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= From aa5bf92249061a166e972943264959cd32672b5b Mon Sep 17 00:00:00 2001 From: Mark Nelson Date: Mon, 28 Oct 2024 14:19:35 -0400 Subject: [PATCH 12/17] update oci sdk and go 1.21 -> 1.22 Signed-off-by: Mark Nelson --- go.mod | 6 +++--- go.sum | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index c89bc28..7cd2482 100644 --- a/go.mod +++ b/go.mod @@ -1,15 +1,15 @@ module github.com/oracle/oracle-db-appdev-monitoring -go 1.21 +go 1.22 -toolchain go1.21.4 +toolchain go1.22.4 require ( github.com/BurntSushi/toml v1.4.0 github.com/alecthomas/kingpin/v2 v2.4.0 github.com/go-kit/log v0.2.1 github.com/godror/godror v0.44.8 - github.com/oracle/oci-go-sdk/v65 v65.75.0 + github.com/oracle/oci-go-sdk/v65 v65.77.1 github.com/prometheus/client_golang v1.20.5 github.com/prometheus/common v0.60.1 github.com/prometheus/exporter-toolkit v0.12.0 diff --git a/go.sum b/go.sum index eac195d..1a46f87 100644 --- a/go.sum +++ b/go.sum @@ -54,6 +54,8 @@ github.com/oracle/oci-go-sdk/v65 v65.73.0 h1:C7uel6CoKk4A1KPkdhFBAyvVyFRTHAmX8m0 github.com/oracle/oci-go-sdk/v65 v65.73.0/go.mod h1:IBEV9l1qBzUpo7zgGaRUhbB05BVfcDGYRFBCPlTcPp0= github.com/oracle/oci-go-sdk/v65 v65.75.0 h1:tifYRSqCjxANJb0xnMSZ6N2bF2xGyqcCIMg7xihgk+s= github.com/oracle/oci-go-sdk/v65 v65.75.0/go.mod h1:IBEV9l1qBzUpo7zgGaRUhbB05BVfcDGYRFBCPlTcPp0= +github.com/oracle/oci-go-sdk/v65 v65.77.1 h1:gqjTXIUWvTihkn470AclxSAMcR1JecqjD2IUtp+sDIU= +github.com/oracle/oci-go-sdk/v65 v65.77.1/go.mod h1:IBEV9l1qBzUpo7zgGaRUhbB05BVfcDGYRFBCPlTcPp0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_golang v1.20.2 h1:5ctymQzZlyOON1666svgwn3s6IKWgfbjsejTMiXIyjg= From cff2b676acab8592405940b9c43b2caff6547b3b Mon Sep 17 00:00:00 2001 From: Mark Nelson Date: Tue, 29 Oct 2024 08:13:59 -0400 Subject: [PATCH 13/17] fix scrapeinterval example Signed-off-by: Mark Nelson --- README.md | 5 +++++ default-metrics.toml | 5 +++++ go.mod | 2 ++ go.sum | 4 ++++ 4 files changed, 16 insertions(+) diff --git a/README.md b/README.md index 513ba47..033d63d 100644 --- a/README.md +++ b/README.md @@ -333,6 +333,11 @@ oracledb_wait_time_system_io 1.62 oracledb_wait_time_user_io 24.5 ``` +These standard metrics are defined in the file `default-metrics.toml` found in the root directory of this repository. + +> **Note:** You can change the interval at which metrics are collected at a per-metric level. If you find that any of the default metrics are placing too much load on your database instance, you may will too collect that particular metric less often, which can be done by adding the `scrapeinterval` paraemeter to the metric definition. See the definition of the `top_sql` metric for an example. + + ## Database permissions required For the built-in default metrics, the database user that the exporter uses to connect to the Oracle Database instance must have the `SELECT_CATALOG_ROLE` privilege and/or `SELECT` permission on the following objects: diff --git a/default-metrics.toml b/default-metrics.toml index 0da8d25..dbb5271 100644 --- a/default-metrics.toml +++ b/default-metrics.toml @@ -95,6 +95,11 @@ order by elapsed_time desc ) where ROWNUM <= 15 ''' ignorezeroresult = true +# scrapeinterval = "5m" +# The previous line is an example of changing the interval at which this one metric +# will be scraped. You may wish to do this to scrape a metric less often, if the SQL +# statement to collect that metric places more load on your database instance than +# desired when it is run at every scrape. [[metric]] context = "cache_hit_ratio" diff --git a/go.mod b/go.mod index 7cd2482..f051a46 100644 --- a/go.mod +++ b/go.mod @@ -25,6 +25,8 @@ require ( github.com/gofrs/flock v0.8.1 // indirect github.com/jpillora/backoff v1.0.0 // indirect github.com/klauspost/compress v1.17.9 // indirect + github.com/mdlayher/socket v0.4.1 // indirect + github.com/mdlayher/vsock v1.2.1 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect github.com/prometheus/client_model v0.6.1 // indirect diff --git a/go.sum b/go.sum index 1a46f87..04e2dc0 100644 --- a/go.sum +++ b/go.sum @@ -44,6 +44,10 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= +github.com/mdlayher/socket v0.4.1 h1:eM9y2/jlbs1M615oshPQOHZzj6R6wMT7bX5NPiQvn2U= +github.com/mdlayher/socket v0.4.1/go.mod h1:cAqeGjoufqdxWkD7DkpyS+wcefOtmu5OQ8KuoJGIReA= +github.com/mdlayher/vsock v1.2.1 h1:pC1mTJTvjo1r9n9fbm7S1j04rCgCzhCOS5DY0zqHlnQ= +github.com/mdlayher/vsock v1.2.1/go.mod h1:NRfCibel++DgeMD8z/hP+PPTjlNJsdPOmxcnENvE+SE= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= From b2fd61d9a15efb6ca17b4ce6e208e5bcd1d7c5f4 Mon Sep 17 00:00:00 2001 From: Mark Nelson Date: Tue, 29 Oct 2024 09:07:15 -0400 Subject: [PATCH 14/17] readme updates Signed-off-by: Mark Nelson --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index 033d63d..37308d0 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,16 @@ Contributions are welcome - please see [contributing](CONTRIBUTING.md). ## Release Notes +### Version 1.5.1, October 28, 2024 + +This release includes the following changes: + +- Added support for using the `TNS_ADMIN` environment variable, which fixes an issue when connecting to Autonomous Database instances using TNS name. +- Updated InstantClient to 23ai version for amd64 and latest available 19.24 version for arm64. +- Fixed an issue with wrong `LD_LIBRARY_PATH` on some platforms. (#136) +- Added documentation and an example of using the `scrapeinterval` setting to change the interval at which a certain metric is colected. +- Updated some third-party dependencies. + ### Version 1.5.0, September 26, 2024 This release includes the following changes: From acd16e357e208c538a0aa8f1d357feded8516350 Mon Sep 17 00:00:00 2001 From: Mark Nelson Date: Tue, 29 Oct 2024 10:51:38 -0400 Subject: [PATCH 15/17] update readme Signed-off-by: Mark Nelson --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 37308d0..c6b02de 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,7 @@ This release includes the following changes: - Updated InstantClient to 23ai version for amd64 and latest available 19.24 version for arm64. - Fixed an issue with wrong `LD_LIBRARY_PATH` on some platforms. (#136) - Added documentation and an example of using the `scrapeinterval` setting to change the interval at which a certain metric is colected. +- Added notes to documentation for extra security parameters needed when using a wallet with Podman. - Updated some third-party dependencies. ### Version 1.5.0, September 26, 2024 From 156ed4b8ac258b1e126f090b8e020819df69a078 Mon Sep 17 00:00:00 2001 From: Mark Nelson Date: Tue, 29 Oct 2024 11:56:40 -0400 Subject: [PATCH 16/17] prepare for 1.5.1 release Signed-off-by: Mark Nelson --- Dockerfile | 23 ++++++++++++----------- Makefile | 2 +- docker-compose/compose.yaml | 2 +- 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/Dockerfile b/Dockerfile index 74c4fdd..cc29045 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,11 +1,11 @@ ARG BASE_IMAGE -FROM ${BASE_IMAGE} AS build +FROM ${BASE_IMAGE:-ghcr.io/oracle/oraclelinux:8-slim} AS build ARG GOOS -ENV GOOS ${GOOS:-linux} +ENV GOOS=${GOOS:-linux} ARG GOARCH -ENV GOARCH ${GOARCH:-amd64} +ENV GOARCH=${GOARCH:-amd64} RUN microdnf install wget gzip gcc && \ wget -q https://go.dev/dl/go1.22.7.${GOOS}-${GOARCH}.tar.gz && \ @@ -13,26 +13,27 @@ RUN microdnf install wget gzip gcc && \ tar -C /usr/local -xzf go1.22.7.${GOOS}-${GOARCH}.tar.gz && \ rm go1.22.7.${GOOS}-${GOARCH}.tar.gz -ENV PATH $PATH:/usr/local/go/bin +ENV PATH=$PATH:/usr/local/go/bin WORKDIR /go/src/oracledb_exporter COPY . . RUN go get -d -v ARG VERSION -ENV VERSION ${VERSION:-1.0.0} +ENV VERSION=${VERSION:-1.0.0} RUN CGO_ENABLED=1 GOOS=${GOOS} GOARCH=${GOARCH} go build -v -ldflags "-X main.Version=${VERSION} -s -w" -FROM ${BASE_IMAGE} as exporter +FROM ${BASE_IMAGE:-ghcr.io/oracle/oraclelinux:8-slim} AS exporter LABEL org.opencontainers.image.authors="Oracle America, Inc." LABEL org.opencontainers.image.description="Oracle Database Observability Exporter" -ENV VERSION ${VERSION:-1.0.0} +ARG VERSION +ENV VERSION=${VERSION:-1.0.0} ENV DEBIAN_FRONTEND=noninteractive ARG GOARCH -ENV GOARCH ${GOARCH:-amd64} +ENV GOARCH=${GOARCH:-amd64} # note: the 23ai arm drivers are not in yum yet, when they are can switch this to just use yum and not need # to wget the driver for arm. also note that the permalink for otn download of drivers does not have version @@ -48,9 +49,9 @@ RUN if [ "$GOARCH" = "amd64" ]; then \ microdnf install glibc-2.28-251.0.2.el8_10.4 \ ; fi -ENV LD_LIBRARY_PATH /usr/lib/oracle/23/client64/lib:usr/lib/oracle/19.24/client64/lib -ENV PATH $PATH:/usr/lib/oracle/23/client64/bin:usr/lib/oracle/19.24/client64/bin -ENV ORACLE_HOME /usr/lib/oracle/23/client64 +ENV LD_LIBRARY_PATH=/usr/lib/oracle/23/client64/lib:usr/lib/oracle/19.24/client64/lib +ENV PATH=$PATH:/usr/lib/oracle/23/client64/bin:usr/lib/oracle/19.24/client64/bin +ENV ORACLE_HOME=/usr/lib/oracle/23/client64 COPY --from=build /go/src/oracledb_exporter/oracle-db-appdev-monitoring /oracledb_exporter ADD ./default-metrics.toml /default-metrics.toml diff --git a/Makefile b/Makefile index 7e25443..7d43f21 100644 --- a/Makefile +++ b/Makefile @@ -86,7 +86,7 @@ docker: docker build --no-cache --progress=plain $(BUILD_ARGS) -t "$(IMAGE_ID)-amd64" --build-arg BASE_IMAGE=$(ORACLE_LINUX_BASE_IMAGE) --build-arg GOARCH=amd64 . docker-arm: - docker build --no-cache --progress=plain $(BUILD_ARGS) -t "$(IMAGE_ID)-arm64" --build-arg BASE_IMAGE=$(ORACLE_LINUX_BASE_IMAGE) --build-arg GOARCH=arm64 . + docker buildx build --platform linux/arm64 --load --no-cache --progress=plain $(BUILD_ARGS) -t "$(IMAGE_ID)-arm64" --build-arg BASE_IMAGE=$(ORACLE_LINUX_BASE_IMAGE) --build-arg GOARCH=arm64 . push-oraclelinux-image: docker push $(IMAGE_ID) diff --git a/docker-compose/compose.yaml b/docker-compose/compose.yaml index 19ccd45..9eb6134 100644 --- a/docker-compose/compose.yaml +++ b/docker-compose/compose.yaml @@ -43,7 +43,7 @@ services: start_period: 30s exporter: - image: container-registry.oracle.com/database/observability-exporter:1.5.0 + image: container-registry.oracle.com/database/observability-exporter:1.5.1 container_name: exporter ports: - 9161:9161 From dd2921397fc6eb728399be98d8a6dfba6bcce96f Mon Sep 17 00:00:00 2001 From: Mark Nelson Date: Tue, 29 Oct 2024 12:12:38 -0400 Subject: [PATCH 17/17] prepare for 1.5.1 release Signed-off-by: Mark Nelson --- README.md | 6 +++--- kubernetes/metrics-exporter-deployment.yaml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index c6b02de..e7e05e4 100644 --- a/README.md +++ b/README.md @@ -475,7 +475,7 @@ docker run -it --rm \ -e DB_PASSWORD=Welcome12345 \ -e DB_CONNECT_STRING=free23ai:1521/freepdb \ -p 9161:9161 \ - container-registry.oracle.com/database/observability-exporter:1.5.0 + container-registry.oracle.com/database/observability-exporter:1.5.1 ``` ##### Using a wallet @@ -506,7 +506,7 @@ docker run -it --rm \ -e DB_CONNECT_STRING=devdb_tp \ -v ./wallet:/wallet \ -p 9161:9161 \ - container-registry.oracle.com/database/observability-exporter:1.5.0 + container-registry.oracle.com/database/observability-exporter:1.5.1 ``` > **Note:** If you are using `podman` you must specify the `:z` suffix on the volume mount so that the container will be able to access the files in the volume. For example: `-v ./wallet:/wallet:z` @@ -796,7 +796,7 @@ An exmaple of [custom metrics for Transacational Event Queues](./custom-metrics- If you run the exporter as a container image and want to include your custom metrics in the image itself, you can use the following example `Dockerfile` to create a new image: ```Dockerfile -FROM container-registry.oracle.com/database/observability-exporter:1.5.0 +FROM container-registry.oracle.com/database/observability-exporter:1.5.1 COPY custom-metrics.toml / ENTRYPOINT ["/oracledb_exporter", "--custom.metrics", "/custom-metrics.toml"] ``` diff --git a/kubernetes/metrics-exporter-deployment.yaml b/kubernetes/metrics-exporter-deployment.yaml index c9c9883..7c0cbad 100755 --- a/kubernetes/metrics-exporter-deployment.yaml +++ b/kubernetes/metrics-exporter-deployment.yaml @@ -17,7 +17,7 @@ spec: spec: containers: - name: metrics-exporter - image: container-registry.oracle.com/database/observability-exporter:1.0.0 + image: container-registry.oracle.com/database/observability-exporter:1.5.1 imagePullPolicy: Always env: # uncomment and customize the next item if you want to provide custom metrics definitions