| 1 |
<stratcon> |
|---|
| 2 |
<eventer/> |
|---|
| 3 |
|
|---|
| 4 |
<logs> |
|---|
| 5 |
<console_output> |
|---|
| 6 |
<outlet name="stderr"/> |
|---|
| 7 |
<log name="error"/> |
|---|
| 8 |
<log name="debug"/> |
|---|
| 9 |
<log name="error/iep"/> |
|---|
| 10 |
<log name="error/eventer" disabled="true"/> |
|---|
| 11 |
<log name="error/datastore" disabled="true"/> |
|---|
| 12 |
<log name="debug/eventer" disabled="true"/> |
|---|
| 13 |
</console_output> |
|---|
| 14 |
</logs> |
|---|
| 15 |
|
|---|
| 16 |
<noits> |
|---|
| 17 |
<config> |
|---|
| 18 |
<!-- |
|---|
| 19 |
If we have a connection failure, attempt to reconnect |
|---|
| 20 |
immediately. Upon failure wait 1000ms (1s) and |
|---|
| 21 |
exponentially backoff up to 900000ms (900s or 15m) |
|---|
| 22 |
--> |
|---|
| 23 |
<reconnect_initial_interval>1000</reconnect_initial_interval> |
|---|
| 24 |
<reconnect_maximum_interval>15000</reconnect_maximum_interval> |
|---|
| 25 |
</config> |
|---|
| 26 |
<sslconfig> |
|---|
| 27 |
<key_file>%sysconfdir%/%PKIPREFIX%stratcon.key</key_file> |
|---|
| 28 |
<certificate_file>%sysconfdir%/%PKIPREFIX%stratcon.crt</certificate_file> |
|---|
| 29 |
<ca_chain>%sysconfdir%/%PKIPREFIX%ca.crt</ca_chain> |
|---|
| 30 |
</sslconfig> |
|---|
| 31 |
<noit address="127.0.0.1" port="43191" /> |
|---|
| 32 |
</noits> |
|---|
| 33 |
|
|---|
| 34 |
<iep disabled="true"> <!-- false the default --> |
|---|
| 35 |
<start directory="%iepdbdir%" |
|---|
| 36 |
command="%iepbindir%/run-iep.sh" /> |
|---|
| 37 |
<queries> |
|---|
| 38 |
<statement id="6cc613a4-7f9c-11de-973f-db7e8ccb2e5c" provides="CheckDetails-ddl"> |
|---|
| 39 |
<epl>create window CheckDetails.std:unique(uuid).win:keepall() as NoitCheck</epl> |
|---|
| 40 |
</statement> |
|---|
| 41 |
<statement id="76598f5e-7f9c-11de-9f5b-ebb4dcb2494e" provides="CheckDetails"> |
|---|
| 42 |
<requires>CheckDetails-ddl</requires> |
|---|
| 43 |
<epl>insert into CheckDetails select * from NoitCheck</epl> |
|---|
| 44 |
</statement> |
|---|
| 45 |
<statement id="ba189f08-7f99-11de-9013-733772d37479" provides="UnavailableStream"> |
|---|
| 46 |
<requires>CheckDetails</requires> |
|---|
| 47 |
<epl>insert into UnavailableStream |
|---|
| 48 |
select p.* as delta, cds.target as target, cds.module as module, |
|---|
| 49 |
cds.name as name, p.s.uuid as uuid |
|---|
| 50 |
from pattern [ every |
|---|
| 51 |
s=NoitStatus(availability='A') -> |
|---|
| 52 |
( n0 = NoitStatus(uuid=s.uuid, availability='U') |
|---|
| 53 |
and not NoitStatus(uuid=s.uuid, availability='A')) |
|---|
| 54 |
].std:lastevent() as p |
|---|
| 55 |
inner join CheckDetails as cds on cds.uuid = p.s.uuid |
|---|
| 56 |
</epl> |
|---|
| 57 |
</statement> |
|---|
| 58 |
<query id="ce6bf8d2-3dd7-11de-a45c-a7df160cba9e" topic="status"> |
|---|
| 59 |
<epl>select * from NoitStatus</epl> |
|---|
| 60 |
</query> |
|---|
| 61 |
</queries> |
|---|
| 62 |
</iep> |
|---|
| 63 |
|
|---|
| 64 |
<database> |
|---|
| 65 |
<journal> |
|---|
| 66 |
<path>/var/log/stratcon.persist</path> |
|---|
| 67 |
</journal> |
|---|
| 68 |
<dbconfig> |
|---|
| 69 |
<host>localhost</host> |
|---|
| 70 |
<dbname>reconnoiter</dbname> |
|---|
| 71 |
<user>stratcon</user> |
|---|
| 72 |
<password>unguessable</password> |
|---|
| 73 |
</dbconfig> |
|---|
| 74 |
<statements> |
|---|
| 75 |
<!-- These are optional and used for stuff like setting search paths --> |
|---|
| 76 |
<!-- |
|---|
| 77 |
<metanodepostconnect><![CDATA[ |
|---|
| 78 |
SELECT do_some_magic(); |
|---|
| 79 |
]]></metanodepostconnect> |
|---|
| 80 |
<storagepostconnect><![CDATA[ |
|---|
| 81 |
SELECT do_some_magic($1,$2); |
|---|
| 82 |
]]></storagepostconnect> |
|---|
| 83 |
--> |
|---|
| 84 |
<allchecks><![CDATA[ |
|---|
| 85 |
SELECT remote_address, id, target, module, name |
|---|
| 86 |
FROM noit.get_checks() |
|---|
| 87 |
]]></allchecks> |
|---|
| 88 |
<findcheck><![CDATA[ |
|---|
| 89 |
SELECT remote_address, id, target, module, name |
|---|
| 90 |
FROM noit.get_check($1,$2) |
|---|
| 91 |
]]></findcheck> |
|---|
| 92 |
<allstoragenodes><![CDATA[ |
|---|
| 93 |
SELECT storage_node_id, fqdn, dsn |
|---|
| 94 |
FROM stratcon.storage_node |
|---|
| 95 |
]]></allstoragenodes> |
|---|
| 96 |
<findstoragenode><![CDATA[ |
|---|
| 97 |
SELECT fqdn, dsn |
|---|
| 98 |
FROM stratcon.storage_node |
|---|
| 99 |
WHERE storage_node_id = $1 |
|---|
| 100 |
]]></findstoragenode> |
|---|
| 101 |
<mapallchecks><![CDATA[ |
|---|
| 102 |
SELECT id, sid, storage_node_id, fqdn, dsn |
|---|
| 103 |
FROM stratcon.map_uuid_to_sid LEFT JOIN stratcon.storage_node USING (storage_node_id) |
|---|
| 104 |
]]></mapallchecks> |
|---|
| 105 |
<mapchecktostoragenode><![CDATA[ |
|---|
| 106 |
SELECT o_storage_node_id as storage_node_id, o_sid as sid, o_fqdn as fqdn, o_dsn as dsn from stratcon.map_uuid_to_sid($1,$2) |
|---|
| 107 |
]]></mapchecktostoragenode> |
|---|
| 108 |
<check><![CDATA[ |
|---|
| 109 |
INSERT INTO stratcon.loading_dock_check_s |
|---|
| 110 |
(remote_address, whence, sid, id, target, module, name) |
|---|
| 111 |
VALUES ($1, 'epoch'::timestamptz + ($2 || ' seconds')::interval, |
|---|
| 112 |
stratcon.generate_sid_from_id($3), $3, $4, $5, $6) |
|---|
| 113 |
]]></check> |
|---|
| 114 |
<status><![CDATA[ |
|---|
| 115 |
INSERT INTO stratcon.loading_dock_status_archive_%Y%m |
|---|
| 116 |
( whence,sid, state, availability, |
|---|
| 117 |
duration, status) |
|---|
| 118 |
VALUES ('epoch'::timestamptz + ($1 || ' seconds')::interval, |
|---|
| 119 |
stratcon.generate_sid_from_id($2), $3, $4, $5, $6) |
|---|
| 120 |
]]></status> |
|---|
| 121 |
<metric_numeric><![CDATA[ |
|---|
| 122 |
INSERT INTO stratcon.loading_dock_metric_numeric_archive_%Y%m |
|---|
| 123 |
(whence, sid, name, value) |
|---|
| 124 |
VALUES ( 'epoch'::timestamptz + ($1 || ' seconds')::interval, |
|---|
| 125 |
stratcon.generate_sid_from_id($2), $3, $4) |
|---|
| 126 |
]]></metric_numeric> |
|---|
| 127 |
<metric_text><![CDATA[ |
|---|
| 128 |
INSERT INTO stratcon.loading_dock_metric_text_archive_%Y%m |
|---|
| 129 |
( whence, sid, name,value) |
|---|
| 130 |
VALUES ('epoch'::timestamptz + ($1 || ' seconds')::interval, |
|---|
| 131 |
stratcon.generate_sid_from_id($2), $3, $4) |
|---|
| 132 |
]]></metric_text> |
|---|
| 133 |
<config><![CDATA[ |
|---|
| 134 |
SELECT stratcon.update_config |
|---|
| 135 |
($1, $2, |
|---|
| 136 |
'epoch'::timestamptz + ($3 || ' seconds')::interval, |
|---|
| 137 |
$4 ) |
|---|
| 138 |
]]></config> |
|---|
| 139 |
</statements> |
|---|
| 140 |
</database> |
|---|
| 141 |
|
|---|
| 142 |
<listeners> |
|---|
| 143 |
<sslconfig> |
|---|
| 144 |
<key_file>%sysconfdir%/%PKIPREFIX%stratcon.key</key_file> |
|---|
| 145 |
<certificate_file>%sysconfdir%/%PKIPREFIX%stratcon.crt</certificate_file> |
|---|
| 146 |
<ca_chain>%sysconfdir%/%PKIPREFIX%ca.crt</ca_chain> |
|---|
| 147 |
</sslconfig> |
|---|
| 148 |
<consoles type="noit_console"> |
|---|
| 149 |
<listener address="/tmp/stratcon"> |
|---|
| 150 |
<config><line_protocol>telnet</line_protocol></config> |
|---|
| 151 |
</listener> |
|---|
| 152 |
</consoles> |
|---|
| 153 |
<realtime type="http_rest_api"> |
|---|
| 154 |
<listener address="*" port="80"> |
|---|
| 155 |
<config> |
|---|
| 156 |
<hostname>stratcon.noit.example.com</hostname> |
|---|
| 157 |
<document_domain>noit.example.com</document_domain> |
|---|
| 158 |
</config> |
|---|
| 159 |
</listener> |
|---|
| 160 |
</realtime> |
|---|
| 161 |
<listener type="control_dispatch" address="*" port="43191" ssl="on" /> |
|---|
| 162 |
</listeners> |
|---|
| 163 |
|
|---|
| 164 |
</stratcon> |
|---|