appsignal 1.2.5 → 1.3.0.beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +14 -0
- data/circle.yml +4 -0
- data/ext/agent.yml +11 -11
- data/ext/appsignal_extension.c +105 -40
- data/lib/appsignal.rb +18 -6
- data/lib/appsignal/cli/install.rb +3 -3
- data/lib/appsignal/config.rb +19 -5
- data/lib/appsignal/event_formatter.rb +3 -2
- data/lib/appsignal/event_formatter/elastic_search/search_formatter.rb +1 -1
- data/lib/appsignal/event_formatter/mongo_ruby_driver/query_formatter.rb +1 -1
- data/lib/appsignal/event_formatter/moped/query_formatter.rb +13 -6
- data/lib/appsignal/hooks/mongo_ruby_driver.rb +0 -1
- data/lib/appsignal/hooks/net_http.rb +2 -5
- data/lib/appsignal/hooks/redis.rb +1 -1
- data/lib/appsignal/hooks/sequel.rb +8 -4
- data/lib/appsignal/integrations/mongo_ruby_driver.rb +1 -1
- data/lib/appsignal/integrations/object.rb +35 -0
- data/lib/appsignal/integrations/resque.rb +5 -0
- data/lib/appsignal/integrations/sinatra.rb +2 -2
- data/lib/appsignal/minutely.rb +41 -0
- data/lib/appsignal/params_sanitizer.rb +4 -105
- data/lib/appsignal/rack/sinatra_instrumentation.rb +25 -2
- data/lib/appsignal/transaction.rb +41 -15
- data/lib/appsignal/transmitter.rb +1 -1
- data/lib/appsignal/utils.rb +42 -47
- data/lib/appsignal/utils/params_sanitizer.rb +58 -0
- data/lib/appsignal/utils/query_params_sanitizer.rb +54 -0
- data/lib/appsignal/version.rb +1 -1
- data/spec/lib/appsignal/config_spec.rb +12 -2
- data/spec/lib/appsignal/extension_spec.rb +4 -0
- data/spec/lib/appsignal/hooks/net_http_spec.rb +20 -28
- data/spec/lib/appsignal/hooks/redis_spec.rb +9 -11
- data/spec/lib/appsignal/integrations/object_spec.rb +211 -0
- data/spec/lib/appsignal/integrations/sinatra_spec.rb +2 -2
- data/spec/lib/appsignal/minutely_spec.rb +54 -0
- data/spec/lib/appsignal/rack/sinatra_instrumentation_spec.rb +50 -10
- data/spec/lib/appsignal/subscriber_spec.rb +5 -6
- data/spec/lib/appsignal/transaction_spec.rb +102 -23
- data/spec/lib/appsignal/transmitter_spec.rb +1 -1
- data/spec/lib/appsignal/utils/params_sanitizer_spec.rb +122 -0
- data/spec/lib/appsignal/utils/query_params_sanitizer_spec.rb +194 -0
- data/spec/lib/appsignal/utils_spec.rb +13 -76
- data/spec/lib/appsignal_spec.rb +82 -13
- metadata +15 -11
- data/lib/appsignal/event_formatter/net_http/request_formatter.rb +0 -13
- data/lib/appsignal/event_formatter/sequel/sql_formatter.rb +0 -13
- data/spec/lib/appsignal/event_formatter/net_http/request_formatter_spec.rb +0 -26
- data/spec/lib/appsignal/event_formatter/sequel/sql_formatter_spec.rb +0 -22
- data/spec/lib/appsignal/params_sanitizer_spec.rb +0 -200
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4023d8cb736130f72754788bec91b9b9fea252b6
|
4
|
+
data.tar.gz: d1fd533404476c04494e467db4b4d609c42fc743
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 93c63a9ba4b9c27dcb3df5338406b27fec2bf037c078071473dca6821accf280bfc827591e805ab5cbc0acac457238587374349b1717c5b81465159b15d04f8e
|
7
|
+
data.tar.gz: 3fc6023b24f6734cb73aa336beba37e6c22592506a186f96c8a7b32f5be16b2e39e77babfbf8fc3e79d2e2b86608f5d11ca0dc149fbeb71a48c7b157161ebada
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,17 @@
|
|
1
|
+
# 1.3.0
|
2
|
+
* Host metrics is now enabled by default
|
3
|
+
* Beta of minutely probes including GC metrics
|
4
|
+
* Refactor of param sanitization
|
5
|
+
* Param filtering for non-Rails frameworks
|
6
|
+
* Support for modular Sinatra applications
|
7
|
+
* Add Sinatra middleware to `Sinatra::Base` by default
|
8
|
+
* Allow a new transaction to be forced by sinatra instrumentation
|
9
|
+
* Allow hostname to be set with environment variable
|
10
|
+
* Helpers for easy method instrumentation
|
11
|
+
* `Appsignal.instrument` helper to easily instrument blocks of code
|
12
|
+
* `record_event` method to instrument events without a start hook
|
13
|
+
* `send_params` is now configurable via the environment
|
14
|
+
|
1
15
|
# 1.2.5
|
2
16
|
* Bugfix in CPU utilization calculation for host metrics
|
3
17
|
|
data/circle.yml
CHANGED
data/ext/agent.yml
CHANGED
@@ -1,18 +1,18 @@
|
|
1
1
|
---
|
2
|
-
version:
|
2
|
+
version: ec934f7
|
3
3
|
triples:
|
4
4
|
x86_64-linux:
|
5
|
-
checksum:
|
6
|
-
download_url: https://appsignal-agent-releases.global.ssl.fastly.net/
|
5
|
+
checksum: 1a247a98823bcf4648363d86d600f2c5f2a4ee147551c6fcee641cef1b109a21
|
6
|
+
download_url: https://appsignal-agent-releases.global.ssl.fastly.net/ec934f7/appsignal-x86_64-linux-all-static.tar.gz
|
7
7
|
i686-linux:
|
8
|
-
checksum:
|
9
|
-
download_url: https://appsignal-agent-releases.global.ssl.fastly.net/
|
8
|
+
checksum: cac5e0b0b39d7f546caf8a2f03cf0c063cfa5aa4123c8e85e59bfe667cb8e0ee
|
9
|
+
download_url: https://appsignal-agent-releases.global.ssl.fastly.net/ec934f7/appsignal-i686-linux-all-static.tar.gz
|
10
10
|
x86-linux:
|
11
|
-
checksum:
|
12
|
-
download_url: https://appsignal-agent-releases.global.ssl.fastly.net/
|
11
|
+
checksum: cac5e0b0b39d7f546caf8a2f03cf0c063cfa5aa4123c8e85e59bfe667cb8e0ee
|
12
|
+
download_url: https://appsignal-agent-releases.global.ssl.fastly.net/ec934f7/appsignal-i686-linux-all-static.tar.gz
|
13
13
|
x86_64-darwin:
|
14
|
-
checksum:
|
15
|
-
download_url: https://appsignal-agent-releases.global.ssl.fastly.net/
|
14
|
+
checksum: 0c0a61129c40362eee779889cf51e84b97e44366ee3d60a81113655673d6d541
|
15
|
+
download_url: https://appsignal-agent-releases.global.ssl.fastly.net/ec934f7/appsignal-x86_64-darwin-all-static.tar.gz
|
16
16
|
universal-darwin:
|
17
|
-
checksum:
|
18
|
-
download_url: https://appsignal-agent-releases.global.ssl.fastly.net/
|
17
|
+
checksum: 0c0a61129c40362eee779889cf51e84b97e44366ee3d60a81113655673d6d541
|
18
|
+
download_url: https://appsignal-agent-releases.global.ssl.fastly.net/ec934f7/appsignal-x86_64-darwin-all-static.tar.gz
|
data/ext/appsignal_extension.c
CHANGED
@@ -1,6 +1,20 @@
|
|
1
1
|
#include "ruby/ruby.h"
|
2
|
+
#include "ruby/encoding.h"
|
2
3
|
#include "appsignal_extension.h"
|
3
4
|
|
5
|
+
static inline appsignal_string_t make_appsignal_string(VALUE str) {
|
6
|
+
return (appsignal_string_t) {
|
7
|
+
.len = RSTRING_LEN(str),
|
8
|
+
.buf = RSTRING_PTR(str)
|
9
|
+
};
|
10
|
+
}
|
11
|
+
|
12
|
+
static inline VALUE make_ruby_string(appsignal_string_t string) {
|
13
|
+
VALUE str = rb_str_new(string.buf, string.len);
|
14
|
+
rb_enc_associate(str, rb_utf8_encoding());
|
15
|
+
return str;
|
16
|
+
}
|
17
|
+
|
4
18
|
VALUE Appsignal;
|
5
19
|
VALUE Extension;
|
6
20
|
VALUE ExtTransaction;
|
@@ -18,26 +32,27 @@ static VALUE stop(VALUE self) {
|
|
18
32
|
}
|
19
33
|
|
20
34
|
static VALUE get_server_state(VALUE self, VALUE key) {
|
21
|
-
|
35
|
+
appsignal_string_t string;
|
22
36
|
|
23
37
|
Check_Type(key, T_STRING);
|
24
38
|
|
25
|
-
|
26
|
-
|
39
|
+
string = appsignal_get_server_state(make_appsignal_string(key));
|
40
|
+
if (string.len > 0) {
|
41
|
+
return make_ruby_string(string);
|
27
42
|
} else {
|
28
43
|
return Qnil;
|
29
44
|
}
|
30
45
|
}
|
31
46
|
|
32
47
|
static VALUE start_transaction(VALUE self, VALUE transaction_id, VALUE namespace) {
|
33
|
-
|
48
|
+
appsignal_transaction_t* transaction;
|
34
49
|
|
35
50
|
Check_Type(transaction_id, T_STRING);
|
36
51
|
Check_Type(namespace, T_STRING);
|
37
52
|
|
38
53
|
transaction = appsignal_start_transaction(
|
39
|
-
|
40
|
-
|
54
|
+
make_appsignal_string(transaction_id),
|
55
|
+
make_appsignal_string(namespace)
|
41
56
|
);
|
42
57
|
|
43
58
|
if (transaction) {
|
@@ -48,9 +63,9 @@ static VALUE start_transaction(VALUE self, VALUE transaction_id, VALUE namespace
|
|
48
63
|
}
|
49
64
|
|
50
65
|
static VALUE start_event(VALUE self) {
|
51
|
-
|
66
|
+
appsignal_transaction_t* transaction;
|
52
67
|
|
53
|
-
Data_Get_Struct(self,
|
68
|
+
Data_Get_Struct(self, appsignal_transaction_t, transaction);
|
54
69
|
|
55
70
|
appsignal_start_event(transaction);
|
56
71
|
|
@@ -58,71 +73,96 @@ static VALUE start_event(VALUE self) {
|
|
58
73
|
}
|
59
74
|
|
60
75
|
static VALUE finish_event(VALUE self, VALUE name, VALUE title, VALUE body, VALUE body_format) {
|
61
|
-
|
76
|
+
appsignal_transaction_t* transaction;
|
62
77
|
|
63
78
|
Check_Type(name, T_STRING);
|
64
79
|
Check_Type(title, T_STRING);
|
65
80
|
Check_Type(body, T_STRING);
|
66
81
|
Check_Type(body_format, T_FIXNUM);
|
67
|
-
Data_Get_Struct(self,
|
82
|
+
Data_Get_Struct(self, appsignal_transaction_t, transaction);
|
68
83
|
|
69
84
|
appsignal_finish_event(
|
70
85
|
transaction,
|
71
|
-
|
72
|
-
|
73
|
-
|
86
|
+
make_appsignal_string(name),
|
87
|
+
make_appsignal_string(title),
|
88
|
+
make_appsignal_string(body),
|
74
89
|
FIX2INT(body_format)
|
75
90
|
);
|
76
91
|
return Qnil;
|
77
92
|
}
|
78
93
|
|
94
|
+
static VALUE record_event(VALUE self, VALUE name, VALUE title, VALUE body, VALUE duration, VALUE body_format) {
|
95
|
+
appsignal_transaction_t* transaction;
|
96
|
+
int duration_type;
|
97
|
+
|
98
|
+
Check_Type(name, T_STRING);
|
99
|
+
Check_Type(title, T_STRING);
|
100
|
+
Check_Type(body, T_STRING);
|
101
|
+
duration_type = TYPE(duration);
|
102
|
+
if (duration_type != T_FIXNUM && duration_type != T_BIGNUM) {
|
103
|
+
rb_raise(rb_eTypeError, "duration should be a Fixnum or Bignum");
|
104
|
+
}
|
105
|
+
Check_Type(body_format, T_FIXNUM);
|
106
|
+
Data_Get_Struct(self, appsignal_transaction_t, transaction);
|
107
|
+
|
108
|
+
appsignal_record_event(
|
109
|
+
transaction,
|
110
|
+
make_appsignal_string(name),
|
111
|
+
make_appsignal_string(title),
|
112
|
+
make_appsignal_string(body),
|
113
|
+
FIX2INT(body_format),
|
114
|
+
NUM2LONG(duration)
|
115
|
+
);
|
116
|
+
return Qnil;
|
117
|
+
}
|
118
|
+
|
79
119
|
static VALUE set_transaction_error(VALUE self, VALUE name, VALUE message, VALUE backtrace) {
|
80
|
-
|
120
|
+
appsignal_transaction_t* transaction;
|
81
121
|
|
82
122
|
Check_Type(name, T_STRING);
|
83
123
|
Check_Type(message, T_STRING);
|
84
124
|
Check_Type(backtrace, T_STRING);
|
85
|
-
Data_Get_Struct(self,
|
125
|
+
Data_Get_Struct(self, appsignal_transaction_t, transaction);
|
86
126
|
|
87
127
|
appsignal_set_transaction_error(
|
88
128
|
transaction,
|
89
|
-
|
90
|
-
|
91
|
-
|
129
|
+
make_appsignal_string(name),
|
130
|
+
make_appsignal_string(message),
|
131
|
+
make_appsignal_string(backtrace)
|
92
132
|
);
|
93
133
|
return Qnil;
|
94
134
|
}
|
95
135
|
|
96
136
|
static VALUE set_transaction_sample_data(VALUE self, VALUE key, VALUE payload) {
|
97
|
-
|
137
|
+
appsignal_transaction_t* transaction;
|
98
138
|
|
99
139
|
Check_Type(key, T_STRING);
|
100
140
|
Check_Type(payload, T_STRING);
|
101
|
-
Data_Get_Struct(self,
|
141
|
+
Data_Get_Struct(self, appsignal_transaction_t, transaction);
|
102
142
|
|
103
143
|
appsignal_set_transaction_sample_data(
|
104
144
|
transaction,
|
105
|
-
|
106
|
-
|
145
|
+
make_appsignal_string(key),
|
146
|
+
make_appsignal_string(payload)
|
107
147
|
);
|
108
148
|
return Qnil;
|
109
149
|
}
|
110
150
|
|
111
151
|
static VALUE set_transaction_action(VALUE self, VALUE action) {
|
112
|
-
|
152
|
+
appsignal_transaction_t* transaction;
|
113
153
|
|
114
154
|
Check_Type(action, T_STRING);
|
115
|
-
Data_Get_Struct(self,
|
155
|
+
Data_Get_Struct(self, appsignal_transaction_t, transaction);
|
116
156
|
|
117
157
|
appsignal_set_transaction_action(
|
118
158
|
transaction,
|
119
|
-
|
159
|
+
make_appsignal_string(action)
|
120
160
|
);
|
121
161
|
return Qnil;
|
122
162
|
}
|
123
163
|
|
124
164
|
static VALUE set_transaction_queue_start(VALUE self, VALUE queue_start) {
|
125
|
-
|
165
|
+
appsignal_transaction_t* transaction;
|
126
166
|
int queue_start_type;
|
127
167
|
|
128
168
|
queue_start_type = TYPE(queue_start);
|
@@ -130,7 +170,7 @@ static VALUE set_transaction_queue_start(VALUE self, VALUE queue_start) {
|
|
130
170
|
rb_raise(rb_eTypeError, "queue_start should be a Fixnum or Bignum");
|
131
171
|
}
|
132
172
|
|
133
|
-
Data_Get_Struct(self,
|
173
|
+
Data_Get_Struct(self, appsignal_transaction_t, transaction);
|
134
174
|
|
135
175
|
appsignal_set_transaction_queue_start(
|
136
176
|
transaction,
|
@@ -140,34 +180,34 @@ static VALUE set_transaction_queue_start(VALUE self, VALUE queue_start) {
|
|
140
180
|
}
|
141
181
|
|
142
182
|
static VALUE set_transaction_metadata(VALUE self, VALUE key, VALUE value) {
|
143
|
-
|
183
|
+
appsignal_transaction_t* transaction;
|
144
184
|
|
145
185
|
Check_Type(key, T_STRING);
|
146
186
|
Check_Type(value, T_STRING);
|
147
|
-
Data_Get_Struct(self,
|
187
|
+
Data_Get_Struct(self, appsignal_transaction_t, transaction);
|
148
188
|
|
149
189
|
appsignal_set_transaction_metadata(
|
150
190
|
transaction,
|
151
|
-
|
152
|
-
|
191
|
+
make_appsignal_string(key),
|
192
|
+
make_appsignal_string(value)
|
153
193
|
);
|
154
194
|
return Qnil;
|
155
195
|
}
|
156
196
|
|
157
197
|
static VALUE finish_transaction(VALUE self) {
|
158
|
-
|
198
|
+
appsignal_transaction_t* transaction;
|
159
199
|
int sample;
|
160
200
|
|
161
|
-
Data_Get_Struct(self,
|
201
|
+
Data_Get_Struct(self, appsignal_transaction_t, transaction);
|
162
202
|
|
163
203
|
sample = appsignal_finish_transaction(transaction);
|
164
204
|
return sample == 1 ? Qtrue : Qfalse;
|
165
205
|
}
|
166
206
|
|
167
207
|
static VALUE complete_transaction(VALUE self) {
|
168
|
-
|
208
|
+
appsignal_transaction_t* transaction;
|
169
209
|
|
170
|
-
Data_Get_Struct(self,
|
210
|
+
Data_Get_Struct(self, appsignal_transaction_t, transaction);
|
171
211
|
|
172
212
|
appsignal_complete_transaction(transaction);
|
173
213
|
return Qnil;
|
@@ -178,7 +218,29 @@ static VALUE set_gauge(VALUE self, VALUE key, VALUE value) {
|
|
178
218
|
Check_Type(value, T_FLOAT);
|
179
219
|
|
180
220
|
appsignal_set_gauge(
|
181
|
-
|
221
|
+
make_appsignal_string(key),
|
222
|
+
NUM2DBL(value)
|
223
|
+
);
|
224
|
+
return Qnil;
|
225
|
+
}
|
226
|
+
|
227
|
+
static VALUE set_host_gauge(VALUE self, VALUE key, VALUE value) {
|
228
|
+
Check_Type(key, T_STRING);
|
229
|
+
Check_Type(value, T_FLOAT);
|
230
|
+
|
231
|
+
appsignal_set_host_gauge(
|
232
|
+
make_appsignal_string(key),
|
233
|
+
NUM2DBL(value)
|
234
|
+
);
|
235
|
+
return Qnil;
|
236
|
+
}
|
237
|
+
|
238
|
+
static VALUE set_process_gauge(VALUE self, VALUE key, VALUE value) {
|
239
|
+
Check_Type(key, T_STRING);
|
240
|
+
Check_Type(value, T_FLOAT);
|
241
|
+
|
242
|
+
appsignal_set_process_gauge(
|
243
|
+
make_appsignal_string(key),
|
182
244
|
NUM2DBL(value)
|
183
245
|
);
|
184
246
|
return Qnil;
|
@@ -189,7 +251,7 @@ static VALUE increment_counter(VALUE self, VALUE key, VALUE count) {
|
|
189
251
|
Check_Type(count, T_FIXNUM);
|
190
252
|
|
191
253
|
appsignal_increment_counter(
|
192
|
-
|
254
|
+
make_appsignal_string(key),
|
193
255
|
FIX2INT(count)
|
194
256
|
);
|
195
257
|
return Qnil;
|
@@ -200,7 +262,7 @@ static VALUE add_distribution_value(VALUE self, VALUE key, VALUE value) {
|
|
200
262
|
Check_Type(value, T_FLOAT);
|
201
263
|
|
202
264
|
appsignal_add_distribution_value(
|
203
|
-
|
265
|
+
make_appsignal_string(key),
|
204
266
|
NUM2DBL(value)
|
205
267
|
);
|
206
268
|
return Qnil;
|
@@ -240,10 +302,10 @@ static VALUE install_gc_event_hooks() {
|
|
240
302
|
Qnil
|
241
303
|
);
|
242
304
|
#endif
|
243
|
-
#if defined(
|
305
|
+
#if defined(RUBY_INTERNAL_EVENT_GC_END_MARK)
|
244
306
|
rb_add_event_hook(
|
245
307
|
track_gc_end,
|
246
|
-
RUBY_INTERNAL_EVENT_GC_END_MARK
|
308
|
+
RUBY_INTERNAL_EVENT_GC_END_MARK,
|
247
309
|
Qnil
|
248
310
|
);
|
249
311
|
#endif
|
@@ -269,6 +331,7 @@ void Init_appsignal_extension(void) {
|
|
269
331
|
// Transaction instance methods
|
270
332
|
rb_define_method(ExtTransaction, "start_event", start_event, 0);
|
271
333
|
rb_define_method(ExtTransaction, "finish_event", finish_event, 4);
|
334
|
+
rb_define_method(ExtTransaction, "record_event", record_event, 5);
|
272
335
|
rb_define_method(ExtTransaction, "set_error", set_transaction_error, 3);
|
273
336
|
rb_define_method(ExtTransaction, "set_sample_data", set_transaction_sample_data, 2);
|
274
337
|
rb_define_method(ExtTransaction, "set_action", set_transaction_action, 1);
|
@@ -283,6 +346,8 @@ void Init_appsignal_extension(void) {
|
|
283
346
|
|
284
347
|
// Metrics
|
285
348
|
rb_define_singleton_method(Extension, "set_gauge", set_gauge, 2);
|
349
|
+
rb_define_singleton_method(Extension, "set_host_gauge", set_host_gauge, 2);
|
350
|
+
rb_define_singleton_method(Extension, "set_process_gauge", set_process_gauge, 2);
|
286
351
|
rb_define_singleton_method(Extension, "increment_counter", increment_counter, 2);
|
287
352
|
rb_define_singleton_method(Extension, "add_distribution_value", add_distribution_value, 2);
|
288
353
|
}
|
data/lib/appsignal.rb
CHANGED
@@ -58,7 +58,11 @@ module Appsignal
|
|
58
58
|
Appsignal::EventFormatter.initialize_formatters
|
59
59
|
initialize_extensions
|
60
60
|
Appsignal::Extension.install_allocation_event_hook if config[:enable_allocation_tracking]
|
61
|
-
|
61
|
+
if config[:enable_gc_instrumentation]
|
62
|
+
Appsignal::Extension.install_gc_event_hooks
|
63
|
+
Appsignal::Minutely.add_gc_probe
|
64
|
+
end
|
65
|
+
Appsignal::Minutely.start if config[:enable_minutely_probes]
|
62
66
|
@subscriber = Appsignal::Subscriber.new
|
63
67
|
else
|
64
68
|
logger.info("Not starting, not active for #{config.env}")
|
@@ -177,32 +181,39 @@ module Appsignal
|
|
177
181
|
end
|
178
182
|
alias :tag_job :tag_request
|
179
183
|
|
184
|
+
def instrument(name, title=nil, body=nil, body_format=Appsignal::EventFormatter::DEFAULT)
|
185
|
+
Appsignal::Transaction.current.start_event
|
186
|
+
r = yield
|
187
|
+
Appsignal::Transaction.current.finish_event(name, title, body, body_format)
|
188
|
+
r
|
189
|
+
end
|
190
|
+
|
180
191
|
def set_gauge(key, value)
|
181
|
-
Appsignal::Extension.set_gauge(key, value.to_f)
|
192
|
+
Appsignal::Extension.set_gauge(key.to_s, value.to_f)
|
182
193
|
rescue RangeError
|
183
194
|
Appsignal.logger.warn("Gauge value #{value} for key '#{key}' is too big")
|
184
195
|
end
|
185
196
|
|
186
197
|
def set_host_gauge(key, value)
|
187
|
-
Appsignal::Extension.set_host_gauge(key, value.to_f)
|
198
|
+
Appsignal::Extension.set_host_gauge(key.to_s, value.to_f)
|
188
199
|
rescue RangeError
|
189
200
|
Appsignal.logger.warn("Host gauge value #{value} for key '#{key}' is too big")
|
190
201
|
end
|
191
202
|
|
192
203
|
def set_process_gauge(key, value)
|
193
|
-
Appsignal::Extension.set_process_gauge(key, value.to_f)
|
204
|
+
Appsignal::Extension.set_process_gauge(key.to_s, value.to_f)
|
194
205
|
rescue RangeError
|
195
206
|
Appsignal.logger.warn("Process gauge value #{value} for key '#{key}' is too big")
|
196
207
|
end
|
197
208
|
|
198
209
|
def increment_counter(key, value=1)
|
199
|
-
Appsignal::Extension.increment_counter(key, value)
|
210
|
+
Appsignal::Extension.increment_counter(key.to_s, value)
|
200
211
|
rescue RangeError
|
201
212
|
Appsignal.logger.warn("Counter value #{value} for key '#{key}' is too big")
|
202
213
|
end
|
203
214
|
|
204
215
|
def add_distribution_value(key, value)
|
205
|
-
Appsignal::Extension.add_distribution_value(key, value.to_f)
|
216
|
+
Appsignal::Extension.add_distribution_value(key.to_s, value.to_f)
|
206
217
|
rescue RangeError
|
207
218
|
Appsignal.logger.warn("Distribution value #{value} for key '#{key}' is too big")
|
208
219
|
end
|
@@ -280,6 +291,7 @@ require 'appsignal/config'
|
|
280
291
|
require 'appsignal/event_formatter'
|
281
292
|
require 'appsignal/hooks'
|
282
293
|
require 'appsignal/marker'
|
294
|
+
require 'appsignal/minutely'
|
283
295
|
require 'appsignal/params_sanitizer'
|
284
296
|
require 'appsignal/integrations/railtie' if defined?(::Rails)
|
285
297
|
require 'appsignal/integrations/resque'
|
@@ -85,7 +85,7 @@ module Appsignal
|
|
85
85
|
puts 'Installing for Sinatra'
|
86
86
|
config[:name] = required_input(' Enter application name: ')
|
87
87
|
puts
|
88
|
-
configure(config, ['production', 'staging'], true)
|
88
|
+
configure(config, ['development', 'production', 'staging'], true)
|
89
89
|
|
90
90
|
puts "Finish Sinatra configuration"
|
91
91
|
puts " Sinatra requires some manual configuration."
|
@@ -107,7 +107,7 @@ module Appsignal
|
|
107
107
|
config[:name] = required_input(' Enter application name: ')
|
108
108
|
puts
|
109
109
|
|
110
|
-
configure(config, ['production', 'staging'], true)
|
110
|
+
configure(config, ['development', 'production', 'staging'], true)
|
111
111
|
|
112
112
|
puts "Finish Padrino installation"
|
113
113
|
puts " Padrino requires some manual configuration."
|
@@ -127,7 +127,7 @@ module Appsignal
|
|
127
127
|
config[:name] = required_input(' Enter application name: ')
|
128
128
|
puts
|
129
129
|
|
130
|
-
configure(config, ['production', 'staging'], true)
|
130
|
+
configure(config, ['development', 'production', 'staging'], true)
|
131
131
|
|
132
132
|
puts "Manual Grape configuration needed"
|
133
133
|
puts " See the installation instructions here:"
|