oboe-heroku 0.9.0.1 → 0.9.7.1

Sign up to get free protection for your applications and to get access to all the features.
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