Chronograf dashboards path

Hi!

Where are the chronograf dashboards saved on disk?
I mean the ones I have created myself.

Or are they saved in a database somewhere?

Lost all my dashboards in a docker-related-accident… So want to make sure it wont happen again :slight_smile:

The default is actually the current working directory, you will want to explicitly set the file using the $BOLT_PATH environment variable.

Unfortunately the --help flag is a bit misleading, it is the bolt file, not path so you will want to set the full file not the directory, e.g. export BOLT_PATH=/var/lib/chronograf/chronograf-v1.db

Also the help flag makes it look like this is the default, but the default is actually ./chronograf-v1.db

We will fix the help info in 1.3.4.0

1 Like

Heres the relevant part of my docker-compose file…
Doesn’t this mean I should have been safe?

environment:
     - BOLT_PATH=/data/chronograf/chronograf-v1.db
volumes: 
    - /data:/data/

You should be, can you verify the chronograf-v1.db is being copied outside the container? It may be worth backing that file up as well.

1 Like

Hi!

There is actually a file in /data/chronograf/chronograf-v1.db, but its only a few K big.

Looking inside the container:

/ # ps
PID   USER     TIME   COMMAND
    1 root      26:39 /usr/bin/chronograf -b /var/lib/chronograf/chronograf-v1.db -c /usr/share/chronograf/canned
   24 root       0:00 sh
   31 root       0:00 ps

I would say that the configuration does not do as it is told…

env
BOLT_PATH=/data/chronograf/chronograf-v1.db
INFLUXDB_URL=http://influxdb:8086

Hi @hasselrot, heads up that CLI args are prioritized over ENV vars. In your command you’re providing a bolt path of /var/lib/chronograf/chronograf-v1.db via the -b flag, and so this is being used for your database path even though you’ve set your BOLT_PATH to /data/chronograf/chronograf-v1.db.

1 Like

Hi!

Sounds very reasonable, however I do not provide that.
Here is my entire configuration (docker-compose):

chronograf:
image: Quay
ports:
- “8888:8888”
environment:
- BOLT_PATH=/data/chronograf/chronograf-v1.db
- INFLUXDB_URL=http://influxdb:8086
- INFLUXDB_USERNAME=CENSORED
- INFLUXDB_PASSWORD=CENSORED
- KAPACITOR_URL=http://kapacitor:9092
volumes:
- /data:/data/
restart: always

Do I have to override the default CLI args when running the docker image?

Could you clarify, when you shared your ps output that included /usr/bin/chronograf -b /var/lib/chronograf/chronograf-v1.db -c /usr/share/chronograf/canned, did you run Chronograf with those CLI flags, or were these CLI flags apparently default behavior?

Yes it seems to be default behaviour.
I only specified the environment variables, I did not run with any CLI flags.

Thanks for the confirmation. It sounds like Chronograf was installed at /var/lib/chronograf/, and is being run with the default CLI flag & value -b=chronograf-v1.db. So it seems like your dashboards should be written to /var/lib/chronograf/chronograf-v1.db, and it sounds like the set ENV var BOLT_PATH is not overriding this default.

If you’re able to restart your Chronograf server, you could test this by passing different values for a database location to -b (as a CLI arg), adding dashboards to one database and not the other, and seeing if when you switch between them, the correct dashboards persist in their respective database files as you’d expect.

Separately, it sounds like there may be a UX issue that would merit being filed at Issues · influxdata/chronograf · GitHub that describes how default CLI arg value for -b is not being overridden by the ENV var value for BOLT_PATH (and maybe this is more general, too), which, if true, does seem counter to what I might expect. If that sounds correct, would you mind filing this issue there?

And in the meantime, let us know if testing the dashboards as described above, resolves your question about where dashboards are saved.

Thanks!

1 Like

I understand the problem. But im running with your docker image, I have not installed chronograf :slight_smile:
Is there anyway I can override the default behaviour without creating my own docker image?

EDIT: It seems I DID misunderstand anyway, when I read your post again :smiley:
I will see if I can test this and report back!

2 Likes

Any luck, @hasselrot?

Hi!

Yes, passing a different command in the docker-compose file will make it work.

Passing the “command: chronograf” in your docker-compose file will make it stop running with “-b” flag and actually obey the environment variable.

I created this issue:

Since the solution is already given its more of a question wether or not the “-b” flag really needs to be set in the docker image…

Glad to hear you got it working. And it sounds like you were able to backup your dashboards.

Thanks for writing up the issue, as well! This is important for us to know.

That all said, sounds like we can consider this thread resolved until further notice :slight_smile:

how to instal chronograf on windows 10?