gmond plugin: Add a plugin to receive Ganglia multicast traffic.
[collectd.git] / src / collectd.conf.in
1 #
2 # Config file for collectd(1).
3 # Please read collectd.conf(5) for a list of options.
4 # http://collectd.org/
5 #
6
7 ##############################################################################
8 # Global                                                                     #
9 #----------------------------------------------------------------------------#
10 # Global settings for the daemon.                                            #
11 ##############################################################################
12
13 #Hostname    "localhost"
14 FQDNLookup   true
15 #BaseDir     "@prefix@/var/lib/@PACKAGE_NAME@"
16 #PIDFile     "@prefix@/var/run/@PACKAGE_NAME@.pid"
17 #PluginDir   "@prefix@/lib/@PACKAGE_NAME@"
18 #TypesDB     "@prefix@/share/@PACKAGE_NAME@/types.db"
19 #Interval     10
20 #ReadThreads  5
21
22 ##############################################################################
23 # Logging                                                                    #
24 #----------------------------------------------------------------------------#
25 # Plugins which provide logging functions should be loaded first, so log     #
26 # messages generated when loading or configuring other plugins can be        #
27 # accessed.                                                                  #
28 ##############################################################################
29
30 @LOAD_PLUGIN_SYSLOG@LoadPlugin syslog
31 @LOAD_PLUGIN_LOGFILE@LoadPlugin logfile
32
33 #<Plugin logfile>
34 #       LogLevel @DEFAULT_LOG_LEVEL@
35 #       File STDOUT
36 #       Timestamp true
37 #</Plugin>
38
39 #<Plugin syslog>
40 #       LogLevel @DEFAULT_LOG_LEVEL@
41 #</Plugin>
42
43 ##############################################################################
44 # LoadPlugin section                                                         #
45 #----------------------------------------------------------------------------#
46 # Lines beginning with a single `#' belong to plugins which have been built  #
47 # but are disabled by default.                                               #
48 #                                                                            #
49 # Lines begnning with `##' belong to plugins which have not been built due   #
50 # to missing dependencies or because they have been deactivated explicitly.  #
51 ##############################################################################
52
53 #@BUILD_PLUGIN_APACHE_TRUE@LoadPlugin apache
54 #@BUILD_PLUGIN_APCUPS_TRUE@LoadPlugin apcups
55 #@BUILD_PLUGIN_APPLE_SENSORS_TRUE@LoadPlugin apple_sensors
56 #@BUILD_PLUGIN_ASCENT_TRUE@LoadPlugin ascent
57 #@BUILD_PLUGIN_BATTERY_TRUE@LoadPlugin battery
58 #@BUILD_PLUGIN_BIND_TRUE@LoadPlugin bind
59 @BUILD_PLUGIN_CPU_TRUE@@BUILD_PLUGIN_CPU_TRUE@LoadPlugin cpu
60 #@BUILD_PLUGIN_CPUFREQ_TRUE@LoadPlugin cpufreq
61 @LOAD_PLUGIN_CSV@LoadPlugin csv
62 #@BUILD_PLUGIN_CURL_TRUE@LoadPlugin curl
63 #@BUILD_PLUGIN_DBI_TRUE@LoadPlugin dbi
64 #@BUILD_PLUGIN_DF_TRUE@LoadPlugin df
65 #@BUILD_PLUGIN_DISK_TRUE@LoadPlugin disk
66 #@BUILD_PLUGIN_DNS_TRUE@LoadPlugin dns
67 #@BUILD_PLUGIN_EMAIL_TRUE@LoadPlugin email
68 #@BUILD_PLUGIN_ENTROPY_TRUE@LoadPlugin entropy
69 #@BUILD_PLUGIN_EXEC_TRUE@LoadPlugin exec
70 #@BUILD_PLUGIN_FILECOUNT_TRUE@LoadPlugin filecount
71 #@BUILD_PLUGIN_GMOND_TRUE@LoadPlugin gmond
72 #@BUILD_PLUGIN_HDDTEMP_TRUE@LoadPlugin hddtemp
73 @BUILD_PLUGIN_INTERFACE_TRUE@@BUILD_PLUGIN_INTERFACE_TRUE@LoadPlugin interface
74 #@BUILD_PLUGIN_IPTABLES_TRUE@LoadPlugin iptables
75 #@BUILD_PLUGIN_IPMI_TRUE@LoadPlugin ipmi
76 #@BUILD_PLUGIN_IPVS_TRUE@LoadPlugin ipvs
77 #@BUILD_PLUGIN_IRQ_TRUE@LoadPlugin irq
78 #@BUILD_PLUGIN_JAVA_TRUE@LoadPlugin java
79 #@BUILD_PLUGIN_LIBVIRT_TRUE@LoadPlugin libvirt
80 @BUILD_PLUGIN_LOAD_TRUE@@BUILD_PLUGIN_LOAD_TRUE@LoadPlugin load
81 #@BUILD_PLUGIN_MBMON_TRUE@LoadPlugin mbmon
82 #@BUILD_PLUGIN_MEMCACHED_TRUE@LoadPlugin memcached
83 @BUILD_PLUGIN_MEMORY_TRUE@@BUILD_PLUGIN_MEMORY_TRUE@LoadPlugin memory
84 #@BUILD_PLUGIN_MULTIMETER_TRUE@LoadPlugin multimeter
85 #@BUILD_PLUGIN_MYSQL_TRUE@LoadPlugin mysql
86 #@BUILD_PLUGIN_NETLINK_TRUE@LoadPlugin netlink
87 @LOAD_PLUGIN_NETWORK@LoadPlugin network
88 #@BUILD_PLUGIN_NFS_TRUE@LoadPlugin nfs
89 #@BUILD_PLUGIN_NGINX_TRUE@LoadPlugin nginx
90 #@BUILD_PLUGIN_NOTIFY_DESKTOP_TRUE@LoadPlugin notify_desktop
91 #@BUILD_PLUGIN_NOTIFY_EMAIL_TRUE@LoadPlugin notify_email
92 #@BUILD_PLUGIN_NTPD_TRUE@LoadPlugin ntpd
93 #@BUILD_PLUGIN_NUT_TRUE@LoadPlugin nut
94 #@BUILD_PLUGIN_ONEWIRE_TRUE@LoadPlugin onewire
95 #@BUILD_PLUGIN_OPENVPN_TRUE@LoadPlugin openvpn
96 #@BUILD_PLUGIN_ORACLE_TRUE@LoadPlugin oracle
97 #@BUILD_PLUGIN_PERL_TRUE@LoadPlugin perl
98 #@BUILD_PLUGIN_PING_TRUE@LoadPlugin ping
99 #@BUILD_PLUGIN_POSTGRESQL_TRUE@LoadPlugin postgresql
100 #@BUILD_PLUGIN_POWERDNS_TRUE@LoadPlugin powerdns
101 #@BUILD_PLUGIN_PROCESSES_TRUE@LoadPlugin processes
102 #@BUILD_PLUGIN_PROTOCOLS_TRUE@LoadPlugin protocols
103 #@BUILD_PLUGIN_RRDCACHED_TRUE@LoadPlugin rrdcached
104 @LOAD_PLUGIN_RRDTOOL@LoadPlugin rrdtool
105 #@BUILD_PLUGIN_SENSORS_TRUE@LoadPlugin sensors
106 #@BUILD_PLUGIN_SERIAL_TRUE@LoadPlugin serial
107 #@BUILD_PLUGIN_SNMP_TRUE@LoadPlugin snmp
108 #@BUILD_PLUGIN_SWAP_TRUE@LoadPlugin swap
109 #@BUILD_PLUGIN_TAIL_TRUE@LoadPlugin tail
110 #@BUILD_PLUGIN_TAPE_TRUE@LoadPlugin tape
111 #@BUILD_PLUGIN_TCPCONNS_TRUE@LoadPlugin tcpconns
112 #@BUILD_PLUGIN_TEAMSPEAK2_TRUE@LoadPlugin teamspeak2
113 #@BUILD_PLUGIN_THERMAL_TRUE@LoadPlugin thermal
114 #@BUILD_PLUGIN_UNIXSOCK_TRUE@LoadPlugin unixsock
115 #@BUILD_PLUGIN_USERS_TRUE@LoadPlugin users
116 #@BUILD_PLUGIN_UUID_TRUE@LoadPlugin uuid
117 #@BUILD_PLUGIN_VMEM_TRUE@LoadPlugin vmem
118 #@BUILD_PLUGIN_VSERVER_TRUE@LoadPlugin vserver
119 #@BUILD_PLUGIN_WIRELESS_TRUE@LoadPlugin wireless
120 #@BUILD_PLUGIN_XMMS_TRUE@LoadPlugin xmms
121
122 ##############################################################################
123 # Plugin configuration                                                       #
124 #----------------------------------------------------------------------------#
125 # In this section configuration stubs for each plugin are provided. A desc-  #
126 # ription of those options is available in the collectd.conf(5) manual page. #
127 ##############################################################################
128
129 #<Plugin apache>
130 #       URL "http://localhost/status?auto"
131 #       User "www-user"
132 #       Password "secret"
133 #       CACert "/etc/ssl/ca.crt"
134 #</Plugin>
135
136 #<Plugin apcups>
137 #       Host "localhost"
138 #       Port "3551"
139 #</Plugin>
140
141 #<Plugin ascent>
142 #       URL "http://localhost/ascent/status/"
143 #       User "www-user"
144 #       Password "secret"
145 #       CACert "/etc/ssl/ca.crt"
146 #</Plugin>
147
148 #<Plugin "bind">
149 #  URL "http://localhost:8053/"
150 #  OpCodes         true
151 #  QTypes          true
152 #
153 #  ServerStats     true
154 #  ZoneMaintStats  true
155 #  ResolverStats   false
156 #  MemoryStats     true
157 #
158 #  <View "_default">
159 #    QTypes        true
160 #    ResolverStats true
161 #    CacheRRSets   true
162 #
163 #    Zone "127.in-addr.arpa/IN"
164 #  </View>
165 #</Plugin>
166
167 #<Plugin csv>
168 #       DataDir "@prefix@/var/lib/@PACKAGE_NAME@/csv"
169 #       StoreRates false
170 #</Plugin>
171
172 #<Plugin curl>
173 #  <Page "stock_quotes">
174 #    URL "http://finance.google.com/finance?q=NYSE%3AAMD"
175 #    User "foo"
176 #    Password "bar"
177 #    <Match>
178 #      Regex "<span +class=\"pr\"[^>]*> *([0-9]*\\.[0-9]+) *</span>"
179 #      DSType "GaugeAverage"
180 #      Type "stock_value"
181 #      Instance "AMD"
182 #    </Match>
183 #  </Page>
184 #</Plugin>
185
186 #<Plugin dbi>
187 #       <Query "num_of_customers">
188 #               Statement "SELECT 'customers' AS c_key, COUNT(*) AS c_value FROM customers_tbl"
189 #               <Result>
190 #                       Type "gauge"
191 #                       InstancesFrom "c_key"
192 #                       ValuesFrom "c_value"
193 #               </Result>
194 #       </Query>
195 #       <Database "customers_db">
196 #               Driver "mysql"
197 #               DriverOption "host" "localhost"
198 #               DriverOption "username" "collectd"
199 #               DriverOption "password" "AeXohy0O"
200 #               DriverOption "dbname" "custdb0"
201 #               #SelectDB "custdb0"
202 #               Query "num_of_customers"
203 #               #Query "..."
204 #       </Database>
205 #</Plugin>
206
207 #<Plugin df>
208 #       Device "/dev/hda1"
209 #       Device "192.168.0.2:/mnt/nfs"
210 #       MountPoint "/home"
211 #       FSType "ext3"
212 #       IgnoreSelected false
213 #</Plugin>
214
215 #<Plugin disk>
216 #       Disk "/^[hs]d[a-f][0-9]?$/"
217 #       IgnoreSelected false
218 #</Plugin>
219
220 #<Plugin dns>
221 #       Interface "eth0"
222 #       IgnoreSource "192.168.0.1"
223 #</Plugin>
224
225 #<Plugin email>
226 #       SocketFile "@prefix@/var/run/@PACKAGE_NAME@-email"
227 #       SocketGroup "collectd"
228 #       SocketPerms "0770"
229 #       MaxConns 5
230 #</Plugin>
231
232 #<Plugin exec>
233 #       Exec "user:group" "/path/to/exec"
234 #       NotificationExec "user:group" "/path/to/exec"
235 #</Plugin>
236
237 #<Plugin filecount>
238 #       <Directory "/path/to/dir">
239 #               Instance "foodir"
240 #               Name "*.conf"
241 #               MTime "-5m"
242 #               Size "+10k"
243 #               Recursive true
244 #       </Directory>
245 #</Plugin>
246
247 #<Plugin hddtemp>
248 #  Host "127.0.0.1"
249 #  Port "7634"
250 #
251 #  #----------------------------------------------------------------#
252 #  # `TranslateDevicename' enabled backwards compatibility behavior #
253 #  # and is enabled by default. Setting this option to `false' is   #
254 #  # highly recommended.                                            #
255 #  #----------------------------------------------------------------#
256 #  TranslateDevicename false
257 #</Plugin>
258
259 #<Plugin interface>
260 #       Interface "eth0"
261 #       IgnoreSelected false
262 #</Plugin>
263
264 #<Plugin iptables>
265 #       Chain table chain
266 #</Plugin>
267
268 #<Plugin irq>
269 #       Irq 7
270 #       Irq 8
271 #       Irq 9
272 #       IgnoreSelected true
273 #</Plugin>
274
275 #<Plugin "java">
276 #       JVMArg "-verbose:jni"
277 #       JVMArg "-Djava.class.path=/opt/collectd/lib/collectd/bindings/java"
278 #
279 #       LoadPlugin "org.collectd.java.Foobar"
280 #       <Plugin "org.collectd.java.Foobar">
281 #         # To be parsed by the plugin
282 #       </Plugin>
283 #</Plugin>
284
285 #<Plugin libvirt>
286 #       Connection "xen:///"
287 #       RefreshInterval 60
288 #       Domain "name"
289 #       BlockDevice "name:device"
290 #       InterfaceDevice "name:device"
291 #       IgnoreSelected false
292 #       HostnameFormat name
293 #</Plugin>
294
295 #<Plugin mbmon>
296 #       Host "127.0.0.1"
297 #       Port "411"
298 #</Plugin>
299
300 #<Plugin memcached>
301 #       Host "127.0.0.1"
302 #       Port "11211"
303 #</Plugin>
304
305 #<Plugin mysql>
306 #       Host "database.serv.er"
307 #       User "db_user"
308 #       Password "secret"
309 #       Database "db_name"
310 #</Plugin>
311
312 #<Plugin netlink>
313 #       Interface "All"
314 #       VerboseInterface "All"
315 #       QDisc "eth0" "pfifo_fast-1:0"
316 #       Class "ppp0" "htb-1:10"
317 #       Filter "ppp0" "u32-1:0"
318 #       IgnoreSelected false
319 #</Plugin>
320
321 @LOAD_PLUGIN_NETWORK@<Plugin network>
322 @LOAD_PLUGIN_NETWORK@   Server "ff18::efc0:4a42" "25826"
323 @LOAD_PLUGIN_NETWORK@   Server "239.192.74.66" "25826"
324 #       Listen "ff18::efc0:4a42" "25826"
325 #       Listen "239.192.74.66" "25826"
326 #       TimeToLive "128"
327 #       Forward false
328 #       CacheFlush 1800
329 @LOAD_PLUGIN_NETWORK@</Plugin>
330
331 #<Plugin nginx>
332 #       URL "http://localhost/status?auto"
333 #       User "www-user"
334 #       Password "secret"
335 #       CACert "/etc/ssl/ca.crt"
336 #</Plugin>
337
338 #<Plugin notify_desktop>
339 #       OkayTimeout 1000
340 #       WarningTimeout 5000
341 #       FailureTimeout 0
342 #</Plugin>
343
344 #<Plugin notify_email>
345 #       SMTPServer "localhost"
346 #       SMTPPort 25
347 #       SMTPUser "my-username"
348 #       SMTPPassword "my-password"
349 #       From "collectd@main0server.com"
350 #       # <WARNING/FAILURE/OK> on <hostname>. beware! do not use not more than two %s in this string!!!
351 #       Subject "Aaaaaa!! %s on %s!!!!!"
352 #       Recipient "email1@domain1.net"
353 #       Recipient "email2@domain2.com"
354 #</Plugin>
355
356 #<Plugin ntpd>
357 #       Host "localhost"
358 #       Port 123
359 #       ReverseLookups false
360 #</Plugin>
361
362 #<Plugin nut>
363 #       UPS "upsname@hostname:port"
364 #</Plugin>
365
366 #<Plugin onewire>
367 #       Device "-s localhost:4304"
368 #       Sensor "F10FCA000800"
369 #       IgnoreSelected false
370 #</Plugin>
371
372 #<Plugin openvpn>
373 #       StatusFile "/etc/openvpn/openvpn-status.log"
374 #</Plugin>
375
376 #<Plugin oracle>
377 #  <Query "out_of_stock">
378 #    Statement "SELECT category, COUNT(*) AS value FROM products WHERE in_stock = 0 GROUP BY category"
379 #    <Result>
380 #      Type "gauge"
381 #      InstancesFrom "category"
382 #      ValuesFrom "value"
383 #    </Result>
384 #  </Query>
385 #  <Database "product_information">
386 #    ConnectID "db01"
387 #    Username "oracle"
388 #    Password "secret"
389 #    Query "out_of_stock"
390 #  </Database>
391 #</Plugin>
392
393 #<Plugin perl>
394 #       IncludeDir "/my/include/path"
395 #       BaseName "Collectd::Plugin"
396 #       EnableDebugger ""
397 #       LoadPlugin foo
398 #
399 #       <Plugin foo>
400 #               Foo "Bar"
401 #               Qux "Baz"
402 #       </Plugin>
403 #</Plugin>
404
405 #<Plugin ping>
406 #       Host "host.foo.bar"
407 #       TTL 255
408 #</Plugin>
409
410 #<Plugin postgresql>
411 #       <Query magic>
412 #               Statement "SELECT magic FROM wizard WHERE host = $1;"
413 #               Param hostname
414 #               <Result>
415 #                       Type gauge
416 #                       InstancePrefix "magic"
417 #                       ValuesFrom magic
418 #               </Result>
419 #       </Query>
420 #       <Query rt36_tickets>
421 #               Statement "SELECT COUNT(type) AS count, type \
422 #                                 FROM (SELECT CASE \
423 #                                              WHEN resolved = 'epoch' THEN 'open' \
424 #                                              ELSE 'resolved' END AS type \
425 #                                              FROM tickets) type \
426 #                                 GROUP BY type;"
427 #               <Result>
428 #                       Type counter
429 #                       InstancePrefix "rt36_tickets"
430 #                       InstancesFrom "type"
431 #                       ValuesFrom "count"
432 #               </Result>
433 #       </Query>
434 #       <Database foo>
435 #               Host "hostname"
436 #               Port "5432"
437 #               User "username"
438 #               Password "secret"
439 #               SSLMode "prefer"
440 #               KRBSrvName "kerberos_service_name"
441 #               Query magic
442 #       </Database>
443 #       <Database bar>
444 #               Service "service_name"
445 #               Query backend # predefined
446 #               Query rt36_tickets
447 #       </Database>
448 #</Plugin>
449
450 #<Plugin powerdns>
451 #  <Server "server_name">
452 #    Collect "latency"
453 #    Collect "udp-answers" "udp-queries"
454 #    Socket "/var/run/pdns.controlsocket"
455 #  </Server>
456 #  <Recursor "recursor_name">
457 #    Collect "questions"
458 #    Collect "cache-hits" "cache-misses"
459 #    Socket "/var/run/pdns_recursor.controlsocket"
460 #  </Recursor>
461 #  LocalSocket "/opt/collectd/var/run/collectd-powerdns"
462 #</Plugin>
463
464 #<Plugin processes>
465 #       Process "name"
466 #</Plugin>
467
468 #<Plugin protocols>
469 #       Value "/^Tcp:/"
470 #       IgnoreSelected false
471 #</Plugin>
472
473 #<Plugin rrdcached>
474 #       DaemonAddress "unix:/tmp/rrdcached.sock"
475 #       DataDir "@prefix@/var/lib/@PACKAGE_NAME@/rrd"
476 #       CreateFiles true
477 #       CollectStatistics true
478 #</Plugin>
479
480 #<Plugin rrdtool>
481 #       DataDir "@prefix@/var/lib/@PACKAGE_NAME@/rrd"
482 #       CacheTimeout 120
483 #       CacheFlush   900
484 #</Plugin>
485
486 #<Plugin sensors>
487 #       Sensor "it8712-isa-0290/temperature-temp1"
488 #       Sensor "it8712-isa-0290/fanspeed-fan3"
489 #       Sensor "it8712-isa-0290/voltage-in8"
490 #       IgnoreSelected false
491 #</Plugin>
492
493 #<Plugin snmp>
494 #   <Data "powerplus_voltge_input">
495 #       Type "voltage"
496 #       Table false
497 #       Instance "input_line1"
498 #       Values "SNMPv2-SMI::enterprises.6050.5.4.1.1.2.1"
499 #   </Data>
500 #   <Data "hr_users">
501 #       Type "users"
502 #       Table false
503 #       Instance ""
504 #       Values "HOST-RESOURCES-MIB::hrSystemNumUsers.0"
505 #   </Data>
506 #   <Data "std_traffic">
507 #       Type "if_octets"
508 #       Table true
509 #       Instance "IF-MIB::ifDescr"
510 #       Values "IF-MIB::ifInOctets" "IF-MIB::ifOutOctets"
511 #   </Data>
512 #
513 #   <Host "some.switch.mydomain.org">
514 #       Address "192.168.0.2"
515 #       Version 1
516 #       Community "community_string"
517 #       Collect "std_traffic"
518 #       Inverval 120
519 #   </Host>
520 #   <Host "some.server.mydomain.org">
521 #       Address "192.168.0.42"
522 #       Version 2
523 #       Community "another_string"
524 #       Collect "std_traffic" "hr_users"
525 #   </Host>
526 #   <Host "some.ups.mydomain.org">
527 #       Address "192.168.0.3"
528 #       Version 1
529 #       Community "more_communities"
530 #       Collect "powerplus_voltge_input"
531 #       Interval 300
532 #   </Host>
533 #</Plugin>
534
535 #<Plugin "tail">
536 #  <File "/var/log/exim4/mainlog">
537 #    Instance "exim"
538 #    <Match>
539 #      Regex "S=([1-9][0-9]*)"
540 #      DSType "CounterAdd"
541 #      Type "ipt_bytes"
542 #      Instance "total"
543 #    </Match>
544 #    <Match>
545 #      Regex "\\<R=local_user\\>"
546 #      DSType "CounterInc"
547 #      Type "counter"
548 #      Instance "local_user"
549 #    </Match>
550 #  </File>
551 #</Plugin>
552
553 #<Plugin tcpconns>
554 #       ListeningPorts false
555 #       LocalPort "25"
556 #       RemotePort "25"
557 #</Plugin>
558
559 #<Plugin teamspeak2>
560 #       Host "127.0.0.1"
561 #       Port "51234"
562 #       Server "8767"
563 #</Plugin>
564
565 #<Plugin thermal>
566 #       ForceUseProcfs false
567 #       Device "THRM"
568 #       IgnoreSelected false
569 #</Plugin>
570
571 #<Plugin unixsock>
572 #       SocketFile "@prefix@/var/run/@PACKAGE_NAME@-unixsock"
573 #       SocketGroup "collectd"
574 #       SocketPerms "0660"
575 #</Plugin>
576
577 #<Plugin uuid>
578 #       UUIDFile "/etc/uuid"
579 #</Plugin>
580
581 #<Plugin vmem>
582 #       Verbose false
583 #</Plugin>
584
585 ##############################################################################
586 # Filter configuration                                                       #
587 #----------------------------------------------------------------------------#
588 # The following configures collectd's filtering mechanism. Before changing   #
589 # anything in this section, please read the `FILTER CONFIGURATION' section   #
590 # in the collectd.conf(5) manual page.                                       #
591 ##############################################################################
592
593 # Load required matches:
594 #@BUILD_PLUGIN_MATCH_REGEX_TRUE@LoadPlugin match_regex
595 #@BUILD_PLUGIN_MATCH_VALUE_TRUE@LoadPlugin match_value
596
597 # Load required targets:
598 #@BUILD_PLUGIN_TARGET_NOTIFICATION_TRUE@LoadPlugin target_notification
599 #@BUILD_PLUGIN_TARGET_REPLACE_TRUE@LoadPlugin target_replace
600 #@BUILD_PLUGIN_TARGET_SET_TRUE@LoadPlugin target_set
601
602 #----------------------------------------------------------------------------#
603 # The following block demonstrates the default behavior if no filtering is   #
604 # configured at all: All values will be sent to all available write plugins. #
605 #----------------------------------------------------------------------------#
606
607 #<Chain "Main">
608 #  Target "write"
609 #</Chain>