What mysqld_exporter is included in pmm2?

Hi folks,

I tried to figure out, which mysqld_exporter “version/binary” is used in the current pmm2-client package.
But I was not able to find out for me and I’m a bit confused now.

I found those both repos:

  1. GitHub - prometheus/mysqld_exporter: Exporter for MySQL server metrics
  2. GitHub - percona/mysqld_exporter: Exporter for MySQL server metrics

When checking my installation I get:

14:03 root@db62 [eu1-fra1]:~# /usr/local/percona/pmm2/exporters/mysqld_exporter --version
mysqld_exporter, version 0.14.0 (branch: , revision: )
  build user:       
  build date:       2023-09-28T22:09:04+0000
  go version:       go1.20.1
  platform:         linux/amd64
14:04 root@db62 [eu1-fra1]:~# dpkg -S /usr/local/percona/pmm2/exporters/mysqld_exporter
pmm2-client: /usr/local/percona/pmm2/exporters/mysqld_exporter
14:04 root@db62 [eu1-fra1]:~# aptitude show pmm2-client
Package: pmm2-client                     
Version: 2.40.0-6.buster
State: installed
Automatically installed: no
Priority: optional
Section: utils
Maintainer: Percona LLC
Architecture: amd64
Uncompressed Size: 195 M
Breaks: pmm-client
Description: Percona Monitoring and Management Client
 Percona Monitoring and Management (PMM) is an open-source platform for managing and monitoring MySQL and MongoDB performance. It is developed by Percona in collaboration with experts in the field of managed database services, support
 and consulting. PMM is a free and open-source solution that you can run in your own environment for maximum security and reliability. It provides thorough time-based analysis for MySQL and MongoDB servers to ensure that your data
 works as efficiently as possible.
Homepage: https://percona.com

Looks like my binary version is v0.14.0 build on 2023-09-28T22:09:04+0000.

If I check the above repos I find

In the 1st
(prometheus/mysqld_exporter)
Latest build:
Version 0.15.0 / code base seems from 2023-06-16 / build from 2023-06-25

In the 2nd
(percona/mysqld_exporter)
Latest build:
0.10.1 from 2021-06-29

Nothing makes sense for me.

Why do I have a binary with a lower version but newer build date then stated in prometheus/mysqld_exporter?
Where is this code base?

Do I mix up things i just don’t understand it …
Could me somebody explain, how it works?

Thanks in advance!
Steffen

Did you change to the correct branch which matches your PMM version?

Yes I did, forgot to mention that I also had a look into there.
I wondered even about that this fork is 82 commits behind the prometheus/mysqld_exporter and thought that this cannot be, but maybe it is :see_no_evil: :grin:

Hi @Boemm,
We’ve made a lot of changes against upstream mysqld_exporter and because of breaking changes we can’t quickly pull upstream changes to our fork. Currently we are focused on other things that have higher priority.
The reason you see newer build date then newer upstream release it’s because we build binary from source code on each release, so it’s the date when we built 2.40.0 and not related directly related to tags in repositories. As @matthewb mentioned we use branches to freeze the code instead of tags for PMM.

Thank you