This repository has been archived by the owner on Oct 22, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 6
/
config.yml
143 lines (117 loc) · 5.28 KB
/
config.yml
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
defaults:
# Application specific configuration keys
app:
publishMetaData: !env:bool PUBLISH_METADATA
# Prefix for exchanges, should always be v1/
namespaceTableName: 'PulseNamespaces'
namespacesExpirationDelay: '- 1 hour'
rabbitQueueTableName: 'PulseRabbitQueues'
rabbitQueueExpirationDelay: '- 24 hours' # This means we re-send alerts at most once a day
# if true, maintenance will just log about what it would do, and not actually do it.
mockMaintenance: !env:bool MOCK_MAINTENANCE
# namespaces are rotated at this time interval.
namespaceRotationInterval: '1 hour'
# permissions to give to users; {{namespace}} is replaced by the namespace. Note that
# when users are deleted, anything that user had permission to configure is also deleted!
# Note that the queue/ and exchange/ conventions are used in monitor config below as well.
# If you change them, update that config as well.
userConfigPermission: "^(queue/{{namespace}}/.*|exchange/{{namespace}}/.*)"
userWritePermission: "^(queue/{{namespace}}/.*|exchange/{{namespace}}/.*)"
userReadPermission: "^(queue/{{namespace}}/.*|exchange/.*)"
# tags to be applied to new users
userTags: [taskcluster-pulse]
# Every username will have this value as a prefix, before the namespace.
# Use this to allow several taskcluster-pulse instances to co-exist within
# the same RabbitMQ service but in different vhosts (since users are not
# scoped to vhosts, the names must be globally unique)
usernamePrefix: !env USERNAME_PREFIX
# If given, all namespaces must begin with this string; and only
# matching queues and exchanges will be monitored. Use this to
# allow taskcluster-pulse to "share" a rabbitmq virtualhost with other
# users.
namespacePrefix: 'taskcluster-'
# parmeters used to construct the connection string given to users; this need not point to the
# same hostname as rabbit.baseUrl, but it should point to the same cluster!
amqpHostname: !env TASKCLUSTER_AMQP_HOSTNAME
amqpProtocol: !env TASKCLUSTER_AMQP_PROTOCOL
amqpPort: !env TASKCLUSTER_AMQP_PORT
amqpVhost: !env TASKCLUSTER_AMQP_VHOST
aws:
accessKeyId: !env AWS_ACCESS_KEY_ID
secretAccessKey: !env AWS_SECRET_ACCESS_KEY
region: us-east-1
apiVersion: 2014-01-01
taskcluster:
rootUrl: !env TASKCLUSTER_ROOT_URL
credentials:
clientId: !env TASKCLUSTER_CLIENT_ID
accessToken: !env TASKCLUSTER_ACCESS_TOKEN
monitoring:
project: !env MONITORING_PROJECT
enable: !env:bool MONITORING_ENABLE
server:
port: !env:number PORT
env: !env NODE_ENV
forceSSL: !env:bool FORCE_SSL
trustProxy: !env:bool TRUST_PROXY
# Administrative credentials for RabbitMQ. These credentials must have the
# 'administrator' tag, and must have config and write permissions to all
# queues and exchanges matching app.userConfigPermission and
# app.userWritePermission, above. RabbitMQ does limit administrators'
# control, so it is a good practice to limit the user to *only* those queues
# and exchanges if the RabbitMQ server is shared.
rabbit:
username: !env RABBIT_USERNAME
password: !env RABBIT_PASSWORD
baseUrl: !env RABBIT_BASE_URL
azure:
accountId: !env AZURE_ACCOUNT
monitor:
alertThreshold: !env MONITOR_ALERT_THRESHOLD # Number of messages in queue before alert
deleteThreshold: !env MONITOR_DELETE_THRESHOLD # Number of messages in queue before delete
queuePrefix: 'queue/' # Prefix of all queues managed by service
exchangePrefix: 'exchange/' # Prefix of all exchanges managed by service
connectionMaxLifetime: '- 72 hours' # Longest time a connection from a client should live
# These manage parameters for taskcluster-lib-iterate
iterationLength: 45
iterationGap: 60
iterationFails: 5
alerter:
messageCountTolerance: !env ALERTER_MESSAGE_COUNT_TOLERANCE
messagePublishRateTolerance: !env ALERTER_MESSAGE_PUBLISH_RATE_TOLERANCE
production:
app:
amqpProtocol: 'amqps://' # Ensure that we're using SSL
amqpPort: 5671 # SSL port
server:
forceSSL: true
trustProxy: true
env: 'production'
monitor:
alertThreshold: 4000
deleteThreshold: 8000
test:
app:
namespacePrefix: 'tcpulse-test-'
namespaceRotationInterval: '1 hour'
userConfigPermission: "^(queue/{{namespace}}/.*|exchange/{{namespace}}/.*)"
userWritePermission: "^(queue/{{namespace}}/.*|exchange/{{namespace}}/.*)"
userReadPermission: "^(queue/{{namespace}}/.*|exchange/.*)"
amqpHostname: localhost
amqpProtocol: 'amqp://'
amqpPort: 5672 # Non SSL port
amqpVhost: /test
namespaceTableName: 'TestPulseNamespaces'
rabbitQueueTableName: 'TestPulseRabbitQueues'
monitoring:
enable: false
server:
port: 60403
forceSSL: false
trustProxy: false
env: development
azure:
accountId: jungle
monitor:
alertThreshold: 4
deleteThreshold: 8