New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Oracle input plugin for database performance #831
Comments
From the Telegraf point of view, A would be the way to go |
By an Oracle Point of view, having frequent connection/disconnection is a bad practice for the listener. |
The reason that move me to try a little demon with java, single connection and light SQL! how can I be most useful? |
If you want to try the A solution, you can have a look at what I did on Postgres #792 Moving it to Oracle wouldn't be a big deal I guess that you are trying to build a dashboard based on ASH ? |
First milestone is to have a dashboard with Top Activity graphs on multiple Oracle instance, without detail on sessions and query. I'm thinking about live monitoring with a way to build dashboard for applications stack (accelerator, application, db). |
going with A, why would it have to do frequent connect/disconnect? couldn't the plugin just cache and hold onto a connection? |
Sure! I must try how it could work on Go! ;) I'm a junior on it. |
Didn't know it was possible. Is it just by not closing the connection and add a defer close ?
|
just making the connection a field on the plugin struct |
ok it's a bit out of the subject of the issue, but do you have a link of an example ? |
I started writing a universal DB Query plugin. Just to avoid duplication: Has anybody else started working on such a plugin? It's based on golang database/sql, so Oracle, Postgres, Mysql should be supported (tested: Oracle XE 12.1 via go-oci8). It supports dynamic tagging based on column names, multiple queries. |
@abarban You might get some inspiration from scollectors oracle collector: https://github.com/bosun-monitor/bosun/blob/master/cmd/scollector/collectors/oracle.go . Haven't used it myself (yet) so I have no idea how applicable it is. |
@sparrc what the status of this? |
not planned for any upcoming release |
Been getting a bunch of interest in it here today at capital one. |
I have some running code in my fork (zseng_dev_sqlquery branch), but plan on changing the config architecture to something like the snmp plugin's. There are some non public commits in my internal repo that fix null handling. |
As a workaround, you can use the "inputs.prometheus" plugin to work with prometheus "oracle DB exporter" This is not very convenient (and in fact rather inconvenient), but it's acceptable as a temporary solution.
there must be a credentials, connection string and LD_LIBRARY_PATH
in some case it may be changed by replace "fieldtoappend" to "labels " in default-metrics.toml, but not all .... |
Also, I am not an expert in license compatibility, but it could be possible to borrow the code of this project ( also golang, MIT license ) for the plugin being created |
Hi @OlegKorchagin , have you tested this one ? It seems a good starting point to get Oracle Performace metrics into influxdb. https://github.com/rsolorzano2410/sqlcollector You can see a config file example here. https://github.com/rsolorzano2410/sqlcollector/blob/master/src/main/resources/conf/SQLCollector.xml |
We have heard reports of people successfully using https://github.com/bonitoo-io/telegraf-input-oracle to collect oracle performance data. It is listed in the external plugins doc. https://github.com/influxdata/telegraf/blob/master/EXTERNAL_PLUGINS.md#inputs The dev team doesn't have plans to implement this as an internal plugin because many oracle go drivers require cgo or don't have acceptable licensing. There is also an external workaround so I'm closing this issue. If anyone has a way around the licensing and gco problems and wants to implement an internal oracle plugin to improve usability or functionality over the external plugin, please submit a PR and we would be happy to review it. |
I'm looking for the ability to have statistical data / performace by Oracle.
I am analyzing two solutions:
A. Go live using driver as:
B. by a demon read in Java that expose the data in JSON
Both have positive and negative sides, the A may have a long latency due to the connection to be restored each time, the B would be an external object to Telegraf.
As always willing to test and development.
The text was updated successfully, but these errors were encountered: