Class: Appsignal::Extension
- Inherits:
-
Object
- Object
- Appsignal::Extension
- Defined in:
- lib/appsignal/extension.rb,
ext/appsignal_extension.c
Class Method Summary collapse
- .add_distribution_value(key, value) ⇒ Object
- .agent_config ⇒ Object
- .agent_version ⇒ Object
- .complete_transaction(transaction_index) ⇒ Object
- .finish_event(transaction_index, name, title, body) ⇒ Object
- .finish_transaction(transaction_index) ⇒ Object
- .increment_counter(key, count) ⇒ Object
-
.install_allocation_event_hook ⇒ Object
Event hook installation.
- .install_gc_event_hooks ⇒ Object
- .method_missing(m, *args, &block) ⇒ Object
-
.set_gauge(key, value) ⇒ Object
Metrics.
- .set_transaction_action(transaction_index, action) ⇒ Object
- .set_transaction_error(transaction_index, name, message, backtrace) ⇒ Object
- .set_transaction_metadata(transaction_index, key, value) ⇒ Object
- .set_transaction_queue_start(transaction_index, queue_start) ⇒ Object
- .set_transaction_sample_data(transaction_index, key, payload) ⇒ Object
-
.start ⇒ Object
Transaction monitoring.
- .start_event(transaction_index) ⇒ Object
- .start_transaction(transaction_id, namespace) ⇒ Object
- .stop ⇒ Object
Class Method Details
.add_distribution_value(key, value) ⇒ Object
145 146 147 148 149 150 151 152 153 154 |
# File 'ext/appsignal_extension.c', line 145
static VALUE add_distribution_value(VALUE self, VALUE key, VALUE value) {
Check_Type(key, T_STRING);
Check_Type(value, T_FLOAT);
appsignal_add_distribution_value(
StringValueCStr(key),
NUM2DBL(value)
);
return Qnil;
}
|
.agent_config ⇒ Object
17 18 19 20 21 |
# File 'lib/appsignal/extension.rb', line 17 def agent_config @agent_config ||= YAML.load( File.read(File.join(File.dirname(__FILE__), '../../ext/agent.yml')) ) end |
.agent_version ⇒ Object
23 24 25 |
# File 'lib/appsignal/extension.rb', line 23 def agent_version agent_config['version'] end |
.complete_transaction(transaction_index) ⇒ Object
116 117 118 119 120 121 |
# File 'ext/appsignal_extension.c', line 116
static VALUE complete_transaction(VALUE self, VALUE transaction_index) {
Check_Type(transaction_index, T_FIXNUM);
appsignal_complete_transaction(FIX2INT(transaction_index));
return Qnil;
}
|
.finish_event(transaction_index, name, title, body) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'ext/appsignal_extension.c', line 29
static VALUE finish_event(VALUE self, VALUE transaction_index, VALUE name, VALUE title, VALUE body) {
Check_Type(transaction_index, T_FIXNUM);
Check_Type(name, T_STRING);
Check_Type(title, T_STRING);
Check_Type(body, T_STRING);
appsignal_finish_event(
FIX2INT(transaction_index),
StringValueCStr(name),
StringValueCStr(title),
StringValueCStr(body)
);
return Qnil;
}
|
.finish_transaction(transaction_index) ⇒ Object
107 108 109 110 111 112 113 114 |
# File 'ext/appsignal_extension.c', line 107
static VALUE finish_transaction(VALUE self, VALUE transaction_index) {
int sample;
Check_Type(transaction_index, T_FIXNUM);
sample = appsignal_finish_transaction(FIX2INT(transaction_index));
return sample == 1 ? Qtrue : Qfalse;
}
|
.increment_counter(key, count) ⇒ Object
134 135 136 137 138 139 140 141 142 143 |
# File 'ext/appsignal_extension.c', line 134
static VALUE increment_counter(VALUE self, VALUE key, VALUE count) {
Check_Type(key, T_STRING);
Check_Type(count, T_FIXNUM);
appsignal_increment_counter(
StringValueCStr(key),
FIX2INT(count)
);
return Qnil;
}
|
.install_allocation_event_hook ⇒ Object
Event hook installation
168 169 170 171 172 173 174 175 176 177 178 179 |
# File 'ext/appsignal_extension.c', line 168
static VALUE install_allocation_event_hook() {
// This event hook is only available on Ruby 2.1 and 2.2
#if defined(RUBY_INTERNAL_EVENT_NEWOBJ)
rb_add_event_hook(
track_allocation,
RUBY_INTERNAL_EVENT_NEWOBJ,
Qnil
);
#endif
return Qnil;
}
|
.install_gc_event_hooks ⇒ Object
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 |
# File 'ext/appsignal_extension.c', line 181
static VALUE install_gc_event_hooks() {
// These event hooks are only available on Ruby 2.1 and 2.2
#if defined(RUBY_INTERNAL_EVENT_GC_START)
rb_add_event_hook(
track_gc_start,
RUBY_INTERNAL_EVENT_GC_START,
Qnil
);
#endif
#if defined(RUBY_INTERNAL_EVENT_GC_END_SWEEP)
// Ruby 2.1
rb_add_event_hook(
track_gc_end,
RUBY_INTERNAL_EVENT_GC_END_SWEEP,
Qnil
);
#endif
#if defined(RUBY_INTERNAL_EVENT_GC_END)
// Ruby 2.2
rb_add_event_hook(
track_gc_end,
RUBY_INTERNAL_EVENT_GC_END,
Qnil
);
#endif
return Qnil;
}
|
.method_missing(m, *args, &block) ⇒ Object
27 28 29 |
# File 'lib/appsignal/extension.rb', line 27 def method_missing(m, *args, &block) # Do nothing if the extension methods are not loaded end |
.set_gauge(key, value) ⇒ Object
Metrics
123 124 125 126 127 128 129 130 131 132 |
# File 'ext/appsignal_extension.c', line 123
static VALUE set_gauge(VALUE self, VALUE key, VALUE value) {
Check_Type(key, T_STRING);
Check_Type(value, T_FLOAT);
appsignal_set_gauge(
StringValueCStr(key),
NUM2DBL(value)
);
return Qnil;
}
|
.set_transaction_action(transaction_index, action) ⇒ Object
72 73 74 75 76 77 78 79 80 81 |
# File 'ext/appsignal_extension.c', line 72
static VALUE set_transaction_action(VALUE self, VALUE transaction_index, VALUE action) {
Check_Type(transaction_index, T_FIXNUM);
Check_Type(action, T_STRING);
appsignal_set_transaction_action(
FIX2INT(transaction_index),
StringValueCStr(action)
);
return Qnil;
}
|
.set_transaction_error(transaction_index, name, message, backtrace) ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'ext/appsignal_extension.c', line 44
static VALUE set_transaction_error(VALUE self, VALUE transaction_index, VALUE name, VALUE message, VALUE backtrace) {
Check_Type(transaction_index, T_FIXNUM);
Check_Type(name, T_STRING);
Check_Type(message, T_STRING);
Check_Type(backtrace, T_STRING);
appsignal_set_transaction_error(
FIX2INT(transaction_index),
StringValueCStr(name),
StringValueCStr(message),
StringValueCStr(backtrace)
);
return Qnil;
}
|
.set_transaction_metadata(transaction_index, key, value) ⇒ Object
94 95 96 97 98 99 100 101 102 103 104 105 |
# File 'ext/appsignal_extension.c', line 94
static VALUE set_transaction_metadata(VALUE self, VALUE transaction_index, VALUE key, VALUE value) {
Check_Type(transaction_index, T_FIXNUM);
Check_Type(key, T_STRING);
Check_Type(value, T_STRING);
appsignal_set_transaction_metadata(
FIX2INT(transaction_index),
StringValueCStr(key),
StringValueCStr(value)
);
return Qnil;
}
|
.set_transaction_queue_start(transaction_index, queue_start) ⇒ Object
83 84 85 86 87 88 89 90 91 92 |
# File 'ext/appsignal_extension.c', line 83
static VALUE set_transaction_queue_start(VALUE self, VALUE transaction_index, VALUE queue_start) {
Check_Type(transaction_index, T_FIXNUM);
Check_Type(queue_start, T_FIXNUM);
appsignal_set_transaction_queue_start(
FIX2INT(transaction_index),
FIX2LONG(queue_start)
);
return Qnil;
}
|
.set_transaction_sample_data(transaction_index, key, payload) ⇒ Object
59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'ext/appsignal_extension.c', line 59
static VALUE set_transaction_sample_data(VALUE self, VALUE transaction_index, VALUE key, VALUE payload) {
Check_Type(transaction_index, T_FIXNUM);
Check_Type(key, T_STRING);
Check_Type(payload, T_STRING);
appsignal_set_transaction_sample_data(
FIX2INT(transaction_index),
StringValueCStr(key),
StringValueCStr(payload)
);
return Qnil;
}
|
.start ⇒ Object
Transaction monitoring
4 5 6 7 8 |
# File 'ext/appsignal_extension.c', line 4 static VALUE start(VALUE self) { appsignal_start(); return Qnil; } |
.start_event(transaction_index) ⇒ Object
22 23 24 25 26 27 |
# File 'ext/appsignal_extension.c', line 22
static VALUE start_event(VALUE self, VALUE transaction_index) {
Check_Type(transaction_index, T_FIXNUM);
appsignal_start_event(FIX2INT(transaction_index));
return Qnil;
}
|
.start_transaction(transaction_id, namespace) ⇒ Object
16 17 18 19 20 |
# File 'ext/appsignal_extension.c', line 16
static VALUE start_transaction(VALUE self, VALUE transaction_id, VALUE namespace) {
Check_Type(transaction_id, T_STRING);
return INT2FIX(appsignal_start_transaction(StringValueCStr(transaction_id), StringValueCStr(namespace)));
}
|
.stop ⇒ Object
10 11 12 13 14 |
# File 'ext/appsignal_extension.c', line 10 static VALUE stop(VALUE self) { appsignal_stop(); return Qnil; } |