Skip to content
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

Kibana 3 and Graphite Integration #720

Closed
vamsikish opened this issue Nov 22, 2013 · 10 comments
Closed

Kibana 3 and Graphite Integration #720

vamsikish opened this issue Nov 22, 2013 · 10 comments

Comments

@vamsikish
Copy link

Hi,

  1. I would like to know if Kibana 3 allows us to query/display/graph data in Graphite (whisper/ceres). According to graphite docs, it is possible to retrieve data in JSON format [ http://graphite.readthedocs.org/en/latest/render_api.html ].
  2. Is it possible to use Kibana 3 if the data is stored in other database other than Elastic search? I would also like to know usecases where the scripted dashboards would be useful and do we have detailed documentation.

Thanks in advance

@ruckc
Copy link

ruckc commented Nov 22, 2013

So, i've been trying to figure out the use case for this. Kibana is better
at looking at sets of records with multiple fields. Graphite stores
numerical values over time. To me, these seem like the data sets stored in
ES vs Graphite would be incompatible except on Temporal values. Can you
provide a mockup of what you would expect the combination to do?

Curtis Ruck
Anytime: 210-857-1126

On Fri, Nov 22, 2013 at 7:05 AM, vamsikish notifications@github.com wrote:

Hi,
I would like to know if Kibana 3 allows us to query/display/graph data in
Graphite (whisper/ceres). According to graphite docs, it is possible to
retrieve data in JSON format [
http://graphite.readthedocs.org/en/latest/render_api.html ]. Also, Is it
possible to use Kibana 3 if the data is stored in other database other than
Elastic search? I would also like to know usecases where the scripted
dashboards would be useful and do we have detailed documentation on this,


Reply to this email directly or view it on GitHubhttps://github.com//issues/720
.

@stuart-warren
Copy link

I could imagine graphing some specified graphite/opentsdb metrics and overlaying some (filtered/queried) vertical lines from elasticsearch for events.

That way you could potentially see a spike in a metric and an event, eg: processor load increasing shortly after a log message saying deploying new version of software, etc.

@vamsikish
Copy link
Author

Hi, thanks for the reply, As Stuart mentioned, the idea is to drill down to the source of problem where I would like to view both the logs and statistics in a single UI. Currently, we view the performance statistics on graphite dashboard and logs on kibana3. Ideally we can write our custom UI querying both the Elastic search and graphite, and request the information in JSON format and chart/graph it. However, current Kibana 3 (milestone 4 or pre released milestone 5) already is an aesthetic dashboard, and supports maps/charts/graphs. What i currently miss with kiabana 3 is the ability to query/display data in graphite. Are there any guidelines on how to work around with kibana 3? I would also like to understand how to use the scripted dashboards feature in kibana 3 (there was an example logstash.js where the output is a dashboard)

@mcallaway
Copy link

I'm also interested in using Kibana 3 to view graphite data. But I'll go
farther. I don't like how graphite forces me to define hierarchy of data
points foo.bar.baz.metric = 1234. I want to define a metric and a value
together with arbitrary tags: metric = { value: 1234, tag1: foo, tag2: bar,
tag3: baz }. I'd expect to store the values/metrics in elastic search and
build the time series graphs via Kibana 3. In this way, "Show me the value
over time for metrics matching this arbitrary search pattern." In that way
I don't have to pre-define a hierarchy of metrics, I can collect them with
whatever I know about them, and then build the graphs later, based on what
I query.

On Fri, Nov 22, 2013 at 10:56 PM, vamsikish notifications@github.comwrote:

Hi, thanks for the reply, As Stuart mentioned, the idea is to drill down
to the source of problem where I would like to view both the logs and
statistics in a single UI. Currently, we view the performance statistics on
graphite dashboard and logs on kibana3. Ideally we can write our custom UI
querying both the Elastic search and graphite, and request the information
in JSON format and chart/graph it. However, current Kibana 3 (milestone 4
or pre released milestone 5) already is an aesthetic dashboard, and
supports maps/charts/graphs. What i currently miss with kiabana 3 is the
ability to query/display data in graphite. Are there any guidelines on how
to work around with kibana 3? I would also like to understand how to use
the scripted dashboards feature in kibana 3 (there was an example
logstash.js where the output is a dashboard)


Reply to this email directly or view it on GitHubhttps://github.com//issues/720#issuecomment-29125900
.

@ruckc
Copy link

ruckc commented Nov 23, 2013

So, that can already be done with elasticsearch. A histogram with a query
on a tag, and sum the values or count the unique events. The issue is that
Graphite's data format is extremely compact for key/value compared to
elasticsearch, and if you had 500 independent metrics for a server, 100
servers, and your value generation rate is every 60 seconds you end up with
about 70 million records per day. In graphite this would be stored in
50,000 independent whisper datafiles, and query/graph would be a linear
operation. In elasticsearch, its a log n operation due to the index.

Curtis Ruck
Anytime: 210-857-1126

On Sat, Nov 23, 2013 at 4:18 PM, Matt Callaway notifications@github.comwrote:

I'm also interested in using Kibana 3 to view graphite data. But I'll go
farther. I don't like how graphite forces me to define hierarchy of data
points foo.bar.baz.metric = 1234. I want to define a metric and a value
together with arbitrary tags: metric = { value: 1234, tag1: foo, tag2:
bar,
tag3: baz }. I'd expect to store the values/metrics in elastic search and
build the time series graphs via Kibana 3. In this way, "Show me the value
over time for metrics matching this arbitrary search pattern." In that way
I don't have to pre-define a hierarchy of metrics, I can collect them with
whatever I know about them, and then build the graphs later, based on what
I query.

On Fri, Nov 22, 2013 at 10:56 PM, vamsikish notifications@github.comwrote:

Hi, thanks for the reply, As Stuart mentioned, the idea is to drill down
to the source of problem where I would like to view both the logs and
statistics in a single UI. Currently, we view the performance statistics
on
graphite dashboard and logs on kibana3. Ideally we can write our custom
UI
querying both the Elastic search and graphite, and request the
information
in JSON format and chart/graph it. However, current Kibana 3 (milestone
4
or pre released milestone 5) already is an aesthetic dashboard, and
supports maps/charts/graphs. What i currently miss with kiabana 3 is the
ability to query/display data in graphite. Are there any guidelines on
how
to work around with kibana 3? I would also like to understand how to use
the scripted dashboards feature in kibana 3 (there was an example
logstash.js where the output is a dashboard)


Reply to this email directly or view it on GitHub<
https://github.com/elasticsearch/kibana/issues/720#issuecomment-29125900>
.


Reply to this email directly or view it on GitHubhttps://github.com//issues/720#issuecomment-29141807
.

@vamsikish
Copy link
Author

Is it possible to use Kibana 3 if the data is stored in other database other than Elastic search? I would also like to know usecases on usage of scripted dashboards feature with some documentation. Is it possible to reuse Kibana3 to make a custom UI? Do you suggest, we store metrics in elastic search directly compared to storing it in Graphite/openTSDB (Does this solution allow scalability)? I am referring to Log management system described here , In this architecture, both kibana and graphite are used, I would like to know how could we integrate two different UIs? Thanks in advance.

@daithi-coombes
Copy link

I'm also interested in documentation on scripted dashboards etc, so far all I can find are these two methods:
https://github.com/elasticsearch/kibana/blob/v3.0.0milestone4/src/app/dashboards/logstash.js
https://github.com/elasticsearch/kibana/blob/v3.0.0milestone4/src/app/dashboards/logstash.json

but no further information

@Dieterbe
Copy link

Dieterbe commented Dec 8, 2013

have a look at http://vimeo.github.io/graph-explorer/ . some of its concepts are similar to kibana's (structures your metrics, aggregation methods, pattern search), but made as a dashboard for graphite.

it uses https://github.com/vimeo/timeserieswidget/ for rendering graphs and supports drawing events from ES as an overlay on the graphs. (although admittedly the rendering and positioning of the ES events is broken right now)

(disclaimer: i'm the main developer behind projects)

@avnivamsikrishna
Copy link

Hi,
I have actually checked graph explorer (GE),
It uses ES to just store tags, and enable faster searching (log complexity instead of linear). To be honest, i did not like GE in terms of visual impact though its currently a good graphite dashboard in terms of features, I am looking at https://github.com/kenhub/giraffe, as all i need is an aesthetic dashboard which is easily configurable and something that looks/feels like kibana3.

Out of context, regarding using the scripted dashboard feature in Kibana3, could you please share any tutorial where you demo usage of scripted dashboards (possibly as a video in Youtube/Dailymotion), currently am storing Dashboard JSON to ES. This becomes cumbersome especially if we have to create a dashboard for every instance.

@rashidkpc
Copy link
Contributor

There is another graphite ticket here: #37

w33ble pushed a commit to w33ble/kibana that referenced this issue Sep 13, 2018
* [WIP][Design] Cleanup canvas part 1 (elastic#697)

Part 1 of dave messing around with the design of canvas.

* Converted bootstrap button groups to EUI button groups in text_style_picker (elastic#713)

* Moved elements and assets to workpad_header (elastic#714)

* Adds tabs to sidebar component (elastic#718)

* Changed sidebar to tabbed layout

* Removed unecessary done props from datasource_component and expression

* Removed unused props in toolbar

* [Design] Part 2 of design cleanup (elastic#715)

* hide nonfocus pages

* button group margins

* workpad panel styled

* header rework

* fix toolbar lint

* update to newest EUI, restyle sidebar tabs, some data source cleanup

* move title to footer

* Add some tooltips

* Fixed custom interval input in refresh controls (elastic#722)

* Fixes Editor Toggle (elastic#721)

* Removed unused selectedPage prop from workpad_header/index.js

* Fixed editor toggle

* Design part 3: page view, data sources, lots of cleanup (elastic#731)

Mostly changes around the page selector and data sources. Also fixes some of the hover issues for canvas elements.

* fix css import error

* [Design] Part 4 of design updates to canvas (elastic#732)

[Design] Part 4: selector rewrite

* Move expression editor back to bottom (elastic#733)

* Removed unused prop form sidebar_component

* Moved expression editor to toolbar

* [Design] Part 5: Cleanup and bugfixing before review (elastic#734)

* style up expression editor, fix resize handles

* hide controls when editing is hidden

* remove icons from element dropdown

* fix canvas grid

* Adds Modals (elastic#739)

* Changed datasource_preview to a modal

* Moved workpad_loader to modal

* address feedback (elastic#740)

* asset manager mostly styled (elastic#741)

* [Image function] support src (image url) in addition to dataurl (elastic#632)

* [Image function] support src (image url) in addition to dataurl

* unit test for httpurl

* fix other elements that use image

* clean up the diff

* more clean up diff

* Handle AJAX errors by showing a notification (elastic#717)

* timeout property for axios instance

* remove TODOS

* notifier class

* TODO

* second notification with the context

* redirect to home if workpad could not be fetched

* less noisy error checking

* Fix ES Docs indices select options (elastic#743)

* Catch more AJAX errors, show error in notification banner (elastic#736)

* catch more errors

* if es_fields fails, still render something

* generate default data in ajax fetches in case of failure

* feedback changes

* remove defaulting that catch makes unnecessary

* Remove run API (elastic#742)

It's not used anywhere and is no longer necessary. We can always recreate
it if the need arises.

* [Design] Part 4 of design updates to canvas (elastic#732)

[Design] Part 4: selector rewrite

* Changed icon to 'warning' in simple_failure

* Fixed canvas loading

* Fixed paginate controls file naming

* Changed color dot size

* Added missing aria-labels

* Fixed warnings

* Fixed expression warnings

* Fixed popovers

* Fixed merge conflicts for image_upload

* Changed placeholder text in custom interval input

* Styled debug render function

* Removed bootstrap from expression and show_debugging

* Changed buttons in expression editor

* Changed asset manager to modal

* Added 'canvas__element' class for BWC for custom CSS in old workpads

* Fixed fullscreen interactions and positioning

* Fixed overflow issue in asset manager

* Removed bootstrap in datasource component

* Changed text input to text area in timelion datasource

* Fixed sort field in esdocs

* Updated style of AssetManager

* Changed all inputs to compressed size

* Added max width for datasource_preview modal

* Fixed cursor when hovering over element in fullscreen mode

* Cleaned up tooltips

* Rearranged buttons in workpad_header

* Updated style to update_modal

* Forgot to remove debug line

* Cleaned up arg_add_popover

* Removed codeblock in update_modal

* Added 'dataurl=null' to image element initial expression

* Added null args to repeatImage and revealImage

* Fixed input validation in expression

* Bumped eui to v1.1.0

* fix: make refresh controls clearer

- Change disabled state to 'refresh this page manually'
- Don't show disable control unless auto-refresh is enabled
- Move disabled control under the refresh interval text

closes elastic#759

* fix: close refresh popover on selection

* fix: replace interval placeholder with help text

Closes elastic#757

* fix: replace EuiFormLabel with aria-labelledby

closes elastic#767

* fix: restore send to top/bottom controls

* fix: more usable page controls

- pull controls out of popover
- move PageControls component out of the preview
- fix link use, so controls actually work
- fix page layout for tall pages

* fix: use correct esdocs query value

* fix: better esdocs form labels

* chore: stricter prop type checking

and remove an unused prop check

* fix: style the unknown args datasource fallback

* fix: show correct sort field in esdocs

* fix: page control icon colors

* Fixed workpad_loader modal issue

* Cleaned up home page styles

* Fixed class name on confirm modal. Removed unused style in main.scss

* fix: flatten the workpad styles

easier to override them, which is handy for fullsceen and other cases

* fix: better fullscreen overrides

* chore: remove unused allowFullScreen props

* fix: workpad size in fullscreen mode

* chore: convert Positionable to a class component

* fix: map font object to flot spec

* fix: use flot font spec for flot output

* test: add font spec test, fix plot & axisconfig tests

* Fixed input refs in datacolumn

* Removed unnecessary styles

* chore: remove debugging console logs

* Fixed prop type error in expression form

* Fixed expression form bouncing from error messages

* fix: page controls visible with scroll bar

* fix: delete element click handler

* chore: bump EUI to 3.0.0

this is the version that will be landing in Kibana

* fix: match ContextMenu class to css rule

* chore: remove unused code

* chore: tiny update modal code refactor

* Replaced & with prefixes in asset_manager and suggestion SCSS files

* Replaced EUI link/icon with EuiButtonIcon

* Changed label for index pattern in esdocs form

* fix: add aria-label to EuiButtonIcon

* fix: restore highlight on hover

and remove the now unused ElementControls component

* chore: update classNames

use the new class naming convention

* chore: remove unused components

* Disabled selection and dragging for img in revealImage

* Add toolbar tray close button (elastic#842)

* Fixed range and percentage arg types (elastic#843)

* Change to preview images

* Chore: naming convention

* Fix EUI Tooltip component content props (elastic#850)

* Fix a small typo in a button icon and tooltip (elastic#851)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

9 participants