oboe-heroku 0.9.0.1 → 0.9.7.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fa6cde0325de70e2f6e7218a1c9f4268f136834a
4
- data.tar.gz: 38e42a03e506dc439db13cc4ef2535d1dacef956
3
+ metadata.gz: c750cd90cba44aa258f1606bad70bc038676dede
4
+ data.tar.gz: 57730112d66e41b7781f56e6f01b9cb8021838f4
5
5
  SHA512:
6
- metadata.gz: 35790a7bb3634e1750299e97451bea1f3be21853dac3d9cd94ed0cfe2dff50d448a6a4fc445e6d7a3cf222d22e783d5b215fe501ad0bb44d286a1a6b9fcceed6
7
- data.tar.gz: 9365f4ac4a3c1942e9d512a28811c62b8200ad4567f69c83f866de7faf894b0ed21f1940aa7030f02f4479ec9f489da12dd00610caa6ab3e7160f069e734812c
6
+ metadata.gz: 854c13b9e3321e41cb1199cf1807b7c71437253386b1bc0042ab95a1a28d1731f1f1bd6b569c492ecc0692bdbe64f2a9fef9039782955052be634ea70b02f84c
7
+ data.tar.gz: 2b4f3a7a705bb209c850a01506829c32a0f15c0c8fa7327444e446fc5c861791121ddb7af93f5a9f467268f807955b22627e47642943ec340fffa097c1c9a2bd
Binary file
@@ -118,7 +118,8 @@ public:
118
118
  /**
119
119
  * Check if the current request should be traced based on the current settings.
120
120
  *
121
- * If in_xtrace is empty, then sampling will be considered as a new trace.
121
+ * If in_xtrace is empty, or if it is identified as a foreign (ie. cross customer)
122
+ * trace, then sampling will be considered as a new trace.
122
123
  * Otherwise sampling will be considered as adding to the current trace.
123
124
  * Different layers may have special rules. Also special rules for AppView
124
125
  * Web synthetic traces apply if in_tv_meta is given a non-empty string.
@@ -128,14 +129,19 @@ public:
128
129
  * @param layer Name of the layer being considered for tracing
129
130
  * @param in_xtrace Incoming X-Trace ID (NULL or empty string if not present)
130
131
  * @param in_tv_meta AppView Web ID from X-TV-Meta HTTP header or higher layer (NULL or empty string if not present).
131
- * @return True if the request should be traced; otherwise false.
132
+ * @return Zero to not trace; otherwise return the sample rate used in the low order
133
+ * bytes 0 to 2 and the sample source in the higher-order byte 3.
132
134
  */
133
- static bool sampleRequest(
135
+ static int sampleRequest(
134
136
  std::string layer,
135
137
  std::string in_xtrace,
136
138
  std::string in_tv_meta)
137
139
  {
138
- return (oboe_sample_layer(layer.c_str(), in_xtrace.c_str(), in_tv_meta.c_str(), NULL, NULL));
140
+ int sample_rate = 0;
141
+ int sample_source = 0;
142
+ int rc = (oboe_sample_layer(layer.c_str(), in_xtrace.c_str(), in_tv_meta.c_str(), &sample_rate, &sample_source));
143
+
144
+ return (rc == 0 ? 0 : (((sample_source & 0xFF) << 24) | (sample_rate & 0xFFFFFF)));
139
145
  }
140
146
 
141
147
  /**
@@ -1,6 +1,6 @@
1
1
  /* ----------------------------------------------------------------------------
2
2
  * This file was automatically generated by SWIG (http://www.swig.org).
3
- * Version 2.0.11
3
+ * Version 2.0.4
4
4
  *
5
5
  * This file is not intended to be easily readable and contains a number of
6
6
  * coding conventions designed to improve portability and efficiency. Do not make
@@ -422,7 +422,7 @@ SWIGINTERNINLINE int SWIG_CheckState(int r) {
422
422
  return SWIG_IsOK(r) ? SWIG_CastRank(r) + 1 : 0;
423
423
  }
424
424
  #else /* no cast-rank mode */
425
- # define SWIG_AddCast(r) (r)
425
+ # define SWIG_AddCast
426
426
  # define SWIG_CheckState(r) (SWIG_IsOK(r) ? 1 : 0)
427
427
  #endif
428
428
 
@@ -486,18 +486,18 @@ SWIG_TypeNameComp(const char *f1, const char *l1,
486
486
 
487
487
  /*
488
488
  Check type equivalence in a name list like <name1>|<name2>|...
489
- Return 0 if equal, -1 if nb < tb, 1 if nb > tb
489
+ Return 0 if not equal, 1 if equal
490
490
  */
491
491
  SWIGRUNTIME int
492
- SWIG_TypeCmp(const char *nb, const char *tb) {
493
- int equiv = 1;
492
+ SWIG_TypeEquiv(const char *nb, const char *tb) {
493
+ int equiv = 0;
494
494
  const char* te = tb + strlen(tb);
495
495
  const char* ne = nb;
496
- while (equiv != 0 && *ne) {
496
+ while (!equiv && *ne) {
497
497
  for (nb = ne; *ne; ++ne) {
498
498
  if (*ne == '|') break;
499
499
  }
500
- equiv = SWIG_TypeNameComp(nb, ne, tb, te);
500
+ equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0;
501
501
  if (*ne) ++ne;
502
502
  }
503
503
  return equiv;
@@ -505,13 +505,24 @@ SWIG_TypeCmp(const char *nb, const char *tb) {
505
505
 
506
506
  /*
507
507
  Check type equivalence in a name list like <name1>|<name2>|...
508
- Return 0 if not equal, 1 if equal
508
+ Return 0 if equal, -1 if nb < tb, 1 if nb > tb
509
509
  */
510
510
  SWIGRUNTIME int
511
- SWIG_TypeEquiv(const char *nb, const char *tb) {
512
- return SWIG_TypeCmp(nb, tb) == 0 ? 1 : 0;
511
+ SWIG_TypeCompare(const char *nb, const char *tb) {
512
+ int equiv = 0;
513
+ const char* te = tb + strlen(tb);
514
+ const char* ne = nb;
515
+ while (!equiv && *ne) {
516
+ for (nb = ne; *ne; ++ne) {
517
+ if (*ne == '|') break;
518
+ }
519
+ equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0;
520
+ if (*ne) ++ne;
521
+ }
522
+ return equiv;
513
523
  }
514
524
 
525
+
515
526
  /*
516
527
  Check the typename
517
528
  */
@@ -1387,7 +1398,7 @@ SWIG_Ruby_AppendOutput(VALUE target, VALUE o) {
1387
1398
 
1388
1399
  /* Runtime API */
1389
1400
 
1390
- #define SWIG_GetModule(clientdata) SWIG_Ruby_GetModule(clientdata)
1401
+ #define SWIG_GetModule(clientdata) SWIG_Ruby_GetModule()
1391
1402
  #define SWIG_SetModule(clientdata, pointer) SWIG_Ruby_SetModule(pointer)
1392
1403
 
1393
1404
 
@@ -1541,7 +1552,7 @@ SWIG_Ruby_NewPointerObj(void *ptr, swig_type_info *type, int flags)
1541
1552
  downcast methods. */
1542
1553
  if (obj != Qnil) {
1543
1554
  VALUE value = rb_iv_get(obj, "@__swigtype__");
1544
- const char* type_name = RSTRING_PTR(value);
1555
+ char* type_name = RSTRING_PTR(value);
1545
1556
 
1546
1557
  if (strcmp(type->name, type_name) == 0) {
1547
1558
  return obj;
@@ -1723,7 +1734,7 @@ SWIG_Ruby_ConvertPacked(VALUE obj, void *ptr, int sz, swig_type_info *ty) {
1723
1734
  }
1724
1735
 
1725
1736
  SWIGRUNTIME swig_module_info *
1726
- SWIG_Ruby_GetModule(void *SWIGUNUSEDPARM(clientdata))
1737
+ SWIG_Ruby_GetModule(void)
1727
1738
  {
1728
1739
  VALUE pointer;
1729
1740
  swig_module_info *ret = 0;
@@ -1763,7 +1774,7 @@ SWIG_Ruby_SetModule(swig_module_info *pointer)
1763
1774
  SWIGINTERN
1764
1775
  int SWIG_Ruby_isCallable( VALUE proc )
1765
1776
  {
1766
- if ( rb_respond_to( proc, swig_call_id ) )
1777
+ if ( rb_respond_to( proc, swig_call_id ) == Qtrue )
1767
1778
  return 1;
1768
1779
  return 0;
1769
1780
  }
@@ -1776,7 +1787,7 @@ int SWIG_Ruby_isCallable( VALUE proc )
1776
1787
  SWIGINTERN
1777
1788
  int SWIG_Ruby_arity( VALUE proc, int minimal )
1778
1789
  {
1779
- if ( rb_respond_to( proc, swig_arity_id ) )
1790
+ if ( rb_respond_to( proc, swig_arity_id ) == Qtrue )
1780
1791
  {
1781
1792
  VALUE num = rb_funcall( proc, swig_arity_id, 0 );
1782
1793
  int arity = NUM2INT(num);
@@ -1831,7 +1842,7 @@ static VALUE mOboe_metal;
1831
1842
  #define SWIG_RUBY_THREAD_END_BLOCK
1832
1843
 
1833
1844
 
1834
- #define SWIGVERSION 0x020011
1845
+ #define SWIGVERSION 0x020004
1835
1846
  #define SWIG_VERSION SWIGVERSION
1836
1847
 
1837
1848
 
@@ -1885,7 +1896,11 @@ SWIGINTERN int
1885
1896
  SWIG_AsCharPtrAndSize(VALUE obj, char** cptr, size_t* psize, int *alloc)
1886
1897
  {
1887
1898
  if (TYPE(obj) == T_STRING) {
1899
+ #if defined(StringValuePtr)
1888
1900
  char *cstr = StringValuePtr(obj);
1901
+ #else
1902
+ char *cstr = STR2CSTR(obj);
1903
+ #endif
1889
1904
  size_t size = RSTRING_LEN(obj) + 1;
1890
1905
  if (cptr) {
1891
1906
  if (alloc) {
@@ -1984,7 +1999,7 @@ SWIG_ruby_failed(void)
1984
1999
  }
1985
2000
 
1986
2001
 
1987
- /*@SWIG:/tmp/local/share/swig/2.0.11/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
2002
+ /*@SWIG:/usr/share/swig2.0/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
1988
2003
  SWIGINTERN VALUE SWIG_AUX_NUM2LONG(VALUE *args)
1989
2004
  {
1990
2005
  VALUE obj = args[0];
@@ -2032,7 +2047,7 @@ SWIG_AsVal_int (VALUE obj, int *val)
2032
2047
 
2033
2048
 
2034
2049
 
2035
- /*@SWIG:/tmp/local/share/swig/2.0.11/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
2050
+ /*@SWIG:/usr/share/swig2.0/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
2036
2051
  SWIGINTERN VALUE SWIG_AUX_NUM2DBL(VALUE *args)
2037
2052
  {
2038
2053
  VALUE obj = args[0];
@@ -2060,7 +2075,7 @@ SWIG_AsVal_double (VALUE obj, double *val)
2060
2075
  return SWIG_TypeError;
2061
2076
  }
2062
2077
 
2063
- static swig_class SwigClassMetadata;
2078
+ swig_class SwigClassMetadata;
2064
2079
 
2065
2080
  #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
2066
2081
  SWIGINTERN VALUE
@@ -2245,7 +2260,7 @@ fail:
2245
2260
  }
2246
2261
 
2247
2262
 
2248
- static swig_class SwigClassContext;
2263
+ swig_class SwigClassContext;
2249
2264
 
2250
2265
  SWIGINTERN VALUE
2251
2266
  _wrap_Context_setTracingMode(int argc, VALUE *argv, VALUE self) {
@@ -2294,7 +2309,7 @@ _wrap_Context_sampleRequest(int argc, VALUE *argv, VALUE self) {
2294
2309
  std::string arg1 ;
2295
2310
  std::string arg2 ;
2296
2311
  std::string arg3 ;
2297
- bool result;
2312
+ int result;
2298
2313
  VALUE vresult = Qnil;
2299
2314
 
2300
2315
  if ((argc < 3) || (argc > 3)) {
@@ -2327,8 +2342,8 @@ _wrap_Context_sampleRequest(int argc, VALUE *argv, VALUE self) {
2327
2342
  arg3 = *ptr;
2328
2343
  if (SWIG_IsNewObj(res)) delete ptr;
2329
2344
  }
2330
- result = (bool)Context::sampleRequest(arg1,arg2,arg3);
2331
- vresult = SWIG_From_bool(static_cast< bool >(result));
2345
+ result = (int)Context::sampleRequest(arg1,arg2,arg3);
2346
+ vresult = SWIG_From_int(static_cast< int >(result));
2332
2347
  return vresult;
2333
2348
  fail:
2334
2349
  return Qnil;
@@ -2590,7 +2605,7 @@ free_Context(Context *arg1) {
2590
2605
  delete arg1;
2591
2606
  }
2592
2607
 
2593
- static swig_class SwigClassEvent;
2608
+ swig_class SwigClassEvent;
2594
2609
 
2595
2610
  SWIGINTERN void
2596
2611
  free_Event(Event *arg1) {
@@ -3037,7 +3052,7 @@ fail:
3037
3052
  }
3038
3053
 
3039
3054
 
3040
- static swig_class SwigClassReporter;
3055
+ swig_class SwigClassReporter;
3041
3056
 
3042
3057
  #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
3043
3058
  SWIGINTERN VALUE
@@ -3224,7 +3239,7 @@ fail:
3224
3239
  }
3225
3240
 
3226
3241
 
3227
- static swig_class SwigClassSslReporter;
3242
+ swig_class SwigClassSslReporter;
3228
3243
 
3229
3244
  #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
3230
3245
  SWIGINTERN VALUE
@@ -3400,7 +3415,7 @@ fail:
3400
3415
  }
3401
3416
 
3402
3417
 
3403
- static swig_class SwigClassUdpReporter;
3418
+ swig_class SwigClassUdpReporter;
3404
3419
 
3405
3420
  SWIGINTERN VALUE
3406
3421
  _wrap_new_UdpReporter__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -3653,7 +3668,7 @@ fail:
3653
3668
  }
3654
3669
 
3655
3670
 
3656
- static swig_class SwigClassFileReporter;
3671
+ swig_class SwigClassFileReporter;
3657
3672
 
3658
3673
  #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
3659
3674
  SWIGINTERN VALUE
@@ -3829,7 +3844,7 @@ fail:
3829
3844
  }
3830
3845
 
3831
3846
 
3832
- static swig_class SwigClassDebugLogger;
3847
+ swig_class SwigClassDebugLogger;
3833
3848
 
3834
3849
  SWIGINTERN VALUE
3835
3850
  _wrap_DebugLogger_log(int argc, VALUE *argv, VALUE self) {
@@ -3968,7 +3983,7 @@ fail:
3968
3983
  }
3969
3984
 
3970
3985
 
3971
- static swig_class SwigClassDebugLog;
3986
+ swig_class SwigClassDebugLog;
3972
3987
 
3973
3988
  SWIGINTERN VALUE
3974
3989
  _wrap_DebugLog_getLevelName(int argc, VALUE *argv, VALUE self) {
@@ -4274,7 +4289,7 @@ free_DebugLog(DebugLog *arg1) {
4274
4289
  delete arg1;
4275
4290
  }
4276
4291
 
4277
- static swig_class SwigClassConfig;
4292
+ swig_class SwigClassConfig;
4278
4293
 
4279
4294
  SWIGINTERN VALUE
4280
4295
  _wrap_Config_checkVersion(int argc, VALUE *argv, VALUE self) {
@@ -4505,6 +4520,8 @@ SWIG_InitializeModule(void *clientdata) {
4505
4520
  swig_module_info *module_head, *iter;
4506
4521
  int found, init;
4507
4522
 
4523
+ clientdata = clientdata;
4524
+
4508
4525
  /* check to see if the circular list has been setup, if not, set it up */
4509
4526
  if (swig_module.next==0) {
4510
4527
  /* Initialize the swig_module */
@@ -4542,7 +4559,7 @@ SWIG_InitializeModule(void *clientdata) {
4542
4559
  module_head->next = &swig_module;
4543
4560
  }
4544
4561
 
4545
- /* When multiple interpreters are used, a module could have already been initialized in
4562
+ /* When multiple interpeters are used, a module could have already been initialized in
4546
4563
  a different interpreter, but not yet have a pointer in this interpreter.
4547
4564
  In this case, we do not want to continue adding types... everything should be
4548
4565
  set up already */
data/lib/base.rb CHANGED
@@ -1,9 +1,32 @@
1
1
  # Copyright (c) 2013 AppNeta, Inc.
2
2
  # All rights reserved.
3
+
4
+ # Constants from liboboe
5
+ OBOE_TRACE_NEVER = 0
6
+ OBOE_TRACE_ALWAYS = 1
7
+ OBOE_TRACE_THROUGH = 2
8
+
9
+ OBOE_SAMPLE_RATE_SOURCE_FILE = 1
10
+ OBOE_SAMPLE_RATE_SOURCE_DEFAULT = 2
11
+ OBOE_SAMPLE_RATE_SOURCE_OBOE = 3
12
+ OBOE_SAMPLE_RATE_SOURCE_LAST_OBOE = 4
13
+ OBOE_SAMPLE_RATE_SOURCE_DEFAULT_MISCONFIGURED = 5
14
+ OBOE_SAMPLE_RATE_SOURCE_OBOE_DEFAULT = 6
15
+
16
+ # Masks for bitwise ops
17
+ ZERO_MASK = 0b00000000000000000000000000
18
+
19
+ SAMPLE_RATE_MASK = 0b00111111111111111111111111
20
+ SAMPLE_SOURCE_MASK = 0b11000000000000000000000000
21
+
22
+ ZERO_SAMPLE_RATE_MASK = 0b11000000000000000000000000
23
+ ZERO_SAMPLE_SOURCE_MASK = 0b00111111111111111111111111
3
24
 
4
25
  module OboeBase
5
26
  attr_accessor :reporter
6
27
  attr_accessor :loaded
28
+ attr_accessor :sample_source
29
+ attr_accessor :sample_rate
7
30
 
8
31
  def self.included(cls)
9
32
  self.loaded = true
data/lib/heroku_metal.rb CHANGED
@@ -44,7 +44,9 @@ module Oboe_metal
44
44
  #
45
45
  def self.start
46
46
  begin
47
- Oboe_metal::Context.init()
47
+ Oboe_metal::Context.init()
48
+
49
+ Oboe.logger.debug "[oboe/debug] Initializing Heroku based reporter."
48
50
 
49
51
  # The Oboe Reporter is configured via Heroku config variables.
50
52
  Oboe.reporter = Oboe::Reporter.new(nil, nil)
@@ -68,13 +70,23 @@ module Oboe
68
70
  include Oboe_metal
69
71
 
70
72
  class << self
71
-
72
73
  def sample?(opts = {})
73
74
  # Assure defaults since SWIG enforces Strings
74
75
  opts[:layer] ||= ''
75
76
  opts[:xtrace] ||= ''
76
- opts['TV-Meta'] ||= ''
77
- Oboe::Context.sampleRequest(opts[:layer], opts[:xtrace], opts['TV-Meta'])
77
+ opts['X-TV-Meta'] ||= ''
78
+
79
+ rv = Oboe::Context.sampleRequest(opts[:layer], opts[:xtrace], opts['X-TV-Meta'])
80
+
81
+ # For older liboboe that returns true/false, just return that.
82
+ return rv if [TrueClass, FalseClass].include?(rv.class) or (rv == 0)
83
+
84
+ # liboboe version > 1.3.1 returning a bit masked integer with SampleRate and
85
+ # source embedded
86
+ Oboe.sample_rate = (rv & SAMPLE_RATE_MASK)
87
+ Oboe.sample_source = (rv & SAMPLE_SOURCE_MASK) >> 24
88
+
89
+ rv
78
90
  end
79
91
 
80
92
  def set_tracing_mode(mode)
@@ -84,21 +96,20 @@ module Oboe
84
96
 
85
97
  case value
86
98
  when :never
87
- # OBOE_TRACE_NEVER
88
- Oboe::Context.setTracingMode(0)
99
+ Oboe::Context.setTracingMode(OBOE_TRACE_NEVER)
100
+
89
101
  when :always
90
- # OBOE_TRACE_ALWAYS
91
- Oboe::Context.setTracingMode(1)
102
+ Oboe::Context.setTracingMode(OBOE_TRACE_ALWAYS)
103
+
92
104
  when :through
93
- # OBOE_TRACE_THROUGH
94
- Oboe::Context.setTracingMode(2)
105
+ Oboe::Context.setTracingMode(OBOE_TRACE_THROUGH)
106
+
95
107
  else
96
108
  Oboe.logger.fatal "[oboe/error] Invalid tracing mode set: #{mode}"
97
- # OBOE_TRACE_ALWAYS
98
- Oboe::Context.setTracingMode(1)
109
+ Oboe::Context.setTracingMode(OBOE_TRACE_THROUGH)
99
110
  end
100
111
  end
101
-
112
+
102
113
  def set_sample_rate(rate)
103
114
  if Oboe.loaded
104
115
  # Update liboboe with the new SampleRate value
data/lib/oboe-heroku.rb CHANGED
@@ -19,7 +19,7 @@ begin
19
19
  # Require the core oboe gem
20
20
  require 'oboe'
21
21
 
22
- ::OboeHeroku::Loading.initialize
22
+ ::OboeHeroku::Loading.configure
23
23
  end
24
24
  rescue Exception => e
25
25
  $stderr.puts "[oboe-heroku/error] Problem loading: #{e.message}"
@@ -1,7 +1,7 @@
1
1
  module OboeHeroku
2
2
  module Loading
3
3
 
4
- def self.initialize
4
+ def self.configure
5
5
  # OBOE_TRACE_NEVER 0
6
6
  # OBOE_TRACE_ALWAYS 1
7
7
  # OBOE_TRACE_THROUGH 2
@@ -27,7 +27,7 @@ module OboeHeroku
27
27
  # OBOE_TRACE_ALWAYS
28
28
  Oboe::Context.setTracingMode(1)
29
29
  end
30
- end # self.initialize_heroku
30
+ end # self.configure
31
31
 
32
32
  end
33
33
  end
@@ -2,7 +2,7 @@ module OboeHeroku
2
2
  module Version
3
3
  MAJOR = 0
4
4
  MINOR = 9
5
- PATCH = 0
5
+ PATCH = 7
6
6
  BUILD = 1
7
7
 
8
8
  STRING = [MAJOR, MINOR, PATCH, BUILD].compact.join('.')
data/oboe-heroku.gemspec CHANGED
@@ -5,6 +5,8 @@ Gem::Specification.new do |s|
5
5
  s.name = %q{oboe-heroku}
6
6
  s.version = OboeHeroku::Version::STRING
7
7
  s.date = Time.now.strftime('%Y-%m-%d')
8
+
9
+ s.license = "AppNeta Open License, Version 1.0"
8
10
 
9
11
  s.authors = ["Peter Giacomo Lombardo", "Guy Lancaster"]
10
12
  s.email = %q{traceviewsupport@appneta.com}
@@ -18,7 +20,7 @@ Gem::Specification.new do |s|
18
20
 
19
21
  s.extensions = ['ext/oboe_metal/extconf.rb']
20
22
 
21
- s.add_dependency(%q<oboe>, [">= 2.3.3.7"])
23
+ s.add_dependency(%q<oboe>, [">= 2.4.0.1"])
22
24
 
23
25
  s.add_development_dependency 'rake'
24
26
  s.add_development_dependency 'rspec'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oboe-heroku
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0.1
4
+ version: 0.9.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Giacomo Lombardo
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-11-19 00:00:00.000000000 Z
12
+ date: 2014-01-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: oboe
@@ -17,14 +17,14 @@ dependencies:
17
17
  requirements:
18
18
  - - '>='
19
19
  - !ruby/object:Gem::Version
20
- version: 2.3.3.7
20
+ version: 2.4.0.1
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - '>='
26
26
  - !ruby/object:Gem::Version
27
- version: 2.3.3.7
27
+ version: 2.4.0.1
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: rake
30
30
  requirement: !ruby/object:Gem::Requirement
@@ -99,7 +99,8 @@ files:
99
99
  - oboe-heroku.gemspec
100
100
  - tasks/.keep
101
101
  homepage: http://www.appneta.com/application-performance-management
102
- licenses: []
102
+ licenses:
103
+ - AppNeta Open License, Version 1.0
103
104
  metadata: {}
104
105
  post_install_message:
105
106
  rdoc_options: []
@@ -117,7 +118,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
117
118
  version: '0'
118
119
  requirements: []
119
120
  rubyforge_project:
120
- rubygems_version: 2.0.3
121
+ rubygems_version: 2.1.11
121
122
  signing_key:
122
123
  specification_version: 4
123
124
  summary: AppNeta TraceView performance instrumentation gem for the Heroku platform