summaryrefslogtreecommitdiffstats
path: root/collectors/python.d.plugin/mysql/README.md
blob: eba9d7a2e5f88e69e751c28e72ddf62a64314983 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
# mysql

Module monitors one or more mysql servers

**Requirements:**
 * python library [MySQLdb](https://github.com/PyMySQL/mysqlclient-python) (faster) or [PyMySQL](https://github.com/PyMySQL/PyMySQL) (slower)

It will produce following charts (if data is available):

1. **Bandwidth** in kilobits/s
 * in
 * out

2. **Queries** in queries/sec
 * queries
 * questions
 * slow queries

3. **Queries By Type** in queries/s
 * select
 * delete
 * update
 * insert
 * cache hits
 * replace

4. **Handlerse** in handlers/s
 * commit
 * delete
 * prepare
 * read first
 * read key
 * read next
 * read prev
 * read rnd
 * read rnd next
 * rollback
 * savepoint
 * savepoint rollback
 * update
 * write

4. **Table Locks** in locks/s
 * immediate
 * waited

5. **Table Select Join Issuess** in joins/s
 * full join
 * full range join
 * range
 * range check
 * scan

6. **Table Sort Issuess** in joins/s
 * merge passes
 * range
 * scan

7. **Tmp Operations** in created/s
 * disk tables
 * files
 * tables

8. **Connections** in connections/s
 * all
 * aborted

9. **Connections Active** in connections/s
 * active
 * limit
 * max active

10. **Binlog Cache** in threads
 * disk
 * all

11. **Threads** in transactions/s
 * connected
 * cached
 * running

12. **Threads Creation Rate** in threads/s
 * created

13. **Threads Cache Misses** in misses
 * misses

14. **InnoDB I/O Bandwidth** in KiB/s
 * read
 * write

15. **InnoDB I/O Operations** in operations/s
 * reads
 * writes
 * fsyncs

16. **InnoDB Pending I/O Operations** in operations/s
 * reads
 * writes
 * fsyncs

17. **InnoDB Log Operations** in operations/s
 * waits
 * write requests
 * writes

18. **InnoDB OS Log Pending Operations** in operations
 * fsyncs
 * writes

19. **InnoDB OS Log Operations** in operations/s
 * fsyncs

20. **InnoDB OS Log Bandwidth** in KiB/s
 * write

21. **InnoDB Current Row Locks** in operations
 * current waits

22. **InnoDB Row Operations** in operations/s
 * inserted
 * read
 * updated
 * deleted

23. **InnoDB Buffer Pool Pagess** in pages
 * data
 * dirty
 * free
 * misc
 * total

24. **InnoDB Buffer Pool Flush Pages Requests** in requests/s
 * flush pages

25. **InnoDB Buffer Pool Bytes** in MiB
 * data
 * dirty

26. **InnoDB Buffer Pool Operations** in operations/s
 * disk reads
 * wait free

27. **QCache Operations** in queries/s
 * hits
 * lowmem prunes
 * inserts
 * no caches

28. **QCache Queries in Cache** in queries
 * queries

29. **QCache Free Memory** in MiB
 * free

30. **QCache Memory Blocks** in blocks
 * free
 * total

31. **MyISAM Key Cache Blocks** in blocks
 * unused
 * used
 * not flushed

32. **MyISAM Key Cache Requests** in requests/s
 * reads
 * writes

33. **MyISAM Key Cache Requests** in requests/s
 * reads
 * writes

34. **MyISAM Key Cache Disk Operations** in operations/s
 * reads
 * writes

35. **Open Files** in files
 * files

36. **Opened Files Rate** in files/s
 * files

37. **Binlog Statement Cache** in statements/s
 * disk
 * all

38. **Connection Errors** in errors/s
 * accept
 * internal
 * max
 * peer addr
 * select
 * tcpwrap

39. **Slave Behind Seconds** in seconds
 * time

40. **I/O / SQL Thread Running State** in bool
 * sql
 * io

41. **Replicated Writesets** in writesets/s
 * rx
 * tx

42. **Replicated Bytes** in KiB/s
 * rx
 * tx

43. **Galera Queue** in writesets
 * rx
 * tx

44. **Replication Conflicts** in transactions
 * bf aborts
 * cert fails

45. **Flow Control** in ms
 * paused

### configuration

You can provide, per server, the following:

1. username which have access to database (defaults to 'root')
2. password (defaults to none)
3. mysql my.cnf configuration file
4. mysql socket (optional)
5. mysql host (ip or hostname)
6. mysql port (defaults to 3306)
7. ssl connection parameters
 - key: the path name of the client private key file.
 - cert: the path name of the client public key certificate file.
 - ca: the path name of the Certificate Authority (CA) certificate file. This option, if used, must specify the same certificate used by the server.
 - capath: the path name of the directory that contains trusted SSL CA certificate files.
 - cipher: the list of permitted ciphers for SSL encryption.
 
Here is an example for 3 servers:

```yaml
update_every : 10
priority     : 90100

local:
  'my.cnf'   : '/etc/mysql/my.cnf'
  priority   : 90000

local_2:
  user     : 'root'
  pass : 'blablablabla'
  socket   : '/var/run/mysqld/mysqld.sock'
  update_every : 1

remote:
  user     : 'admin'
  pass : 'bla'
  host     : 'example.org'
  port     : 9000
```

If no configuration is given, module will attempt to connect to mysql server via unix socket at `/var/run/mysqld/mysqld.sock` without password and with username `root`

---

[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fmysql%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()