shatteredsilicon / ssm-submodules

GNU Affero General Public License v3.0
0 stars 2 forks source link

mysqld_exporter config: info_schema.tables.databases #266

Closed gordan-bobic closed 2 weeks ago

gordan-bobic commented 2 weeks ago
info_schema.tables.databases = *

is needed for tablestats to populate. It should be made the default if tablestats are enabled. Note that tablestats collection is (or was originally) based on the number of tables. PMM's default was 1000, not sure what ours is, but it should not always default to tablestats collection being enabled - it can be very expensive if there are huge numbers of tables present (many thousands).

I'm not sure if there is currently a dependcy on info_schema.tablestats for this - if there isn't there should be. So:

info_schema.tables.databases = *

should be the default, but it should have no effect unless:

info_schema.tablestats=1

which should be set at ssm-admin add time based on the number of tables detected.

oblitorum commented 2 weeks ago

info_schema.tables.databases = * was set as default, there was a problem that if you do a upgrade from .3 ssm-client, it will be empty by default. But it's fixed by https://github.com/shatteredsilicon/ssm-client/pull/46 now

info_schema.tables.databases should have no effect unless: info_schema.tablestats=1

Actually, the relevant config is info_schema.tables, it should be "info_schema.tables.databases should have no effect unless: info_schema.tables=1". But the --disable-tablestats-limit parameter at ssm-admin add mysql also affects this config too. When you run ssm-admin add mysql --disable-tablestats-limit xxx and the number of tables exceeds that number, it will set all following config to 0:

auto_increment.columns
info_schema.tables
info_schema.tablestats
perf_schema.indexiowaits
perf_schema.tableiowaits
perf_schema.tablelocks

So I think this is good enough. And the default value of --disable-tablestats-limit is also 1000, it's inherited from PMM. I just tested, it seems it is still working.

gordan-bobic commented 2 weeks ago

OK, can you put a note on the relevant graph section that says:

"Note: If these graphs are empty, check that you have: info_schema.tables.databases = * set in your mysqld_exporter.conf"

oblitorum commented 2 weeks ago

Sure, I think we should also mention info_schema.tables = 1 in the note, right?

gordan-bobic commented 2 weeks ago

Yes, it should specify all settings have to be in place for the graphs to populate.