Skip to content

Commit eb965c8

Browse files
Merge pull request #10 from Learnosity/CAT-68/feature/add-telemetry
[FEATURE] SDK Telemetry CAT-68
2 parents 727d0f1 + 62146ea commit eb965c8

File tree

10 files changed

+597
-345
lines changed

10 files changed

+597
-345
lines changed

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
.idea/
2+
.rakeTasks
13
/.bundle/
24
/.yardoc
35
/_yardoc/
@@ -7,5 +9,7 @@
79
/spec/reports/
810
/tmp/
911

12+
/examples/lrn-sdk-rails/Gemfile.lock
13+
1014
# rspec failure tracking
1115
.rspec_status

ChangeLog.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Change Log
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
6+
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
7+
8+
## [Unreleased]
9+
### Added
10+
- This ChangeLog!
11+
- Telemetry data (basic information about the execution environment) is now added to the to the request objects being signed which is later read and logged internally by our APIs when the request is received. This allows us to better support our various SDKs and does not send any additional network requests. More information can be found in README.md.

Gemfile.lock

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,13 @@ PATH
22
remote: .
33
specs:
44
learnosity-sdk (0.1.0)
5+
sys-uname (~> 1.0)
56

67
GEM
78
remote: https://rubygems.org/
89
specs:
910
diff-lcs (1.3)
11+
ffi (1.11.1)
1012
rake (10.5.0)
1113
rspec (3.8.0)
1214
rspec-core (~> 3.8.0)
@@ -21,6 +23,8 @@ GEM
2123
diff-lcs (>= 1.2.0, < 2.0)
2224
rspec-support (~> 3.8.0)
2325
rspec-support (3.8.0)
26+
sys-uname (1.0.4)
27+
ffi (>= 1.0.0)
2428

2529
PLATFORMS
2630
ruby

README.md

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,19 @@ Just run
268268

269269
rake spec
270270

271-
to exercise the testsuite
271+
to exercise the testsuite.
272+
273+
##Tracking
274+
275+
In version v0.2.0, we introduced code to track the following information by adding it to the request being signed:
276+
277+
SDK version
278+
SDK language
279+
SDK language version
280+
Host platform (OS)
281+
Platform version
282+
283+
We use this data to enable better support and feature planning. All subsequent versions of the SDK shall include this usage tracking.
272284

273285

274286
[author-api-doc]: https://docs.learnosity.com/authoring/author

examples/lrn-sdk-rails/Gemfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ end
99
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
1010
gem 'rails', '~> 5.0.2'
1111
# Use sqlite3 as the database for Active Record
12-
gem 'sqlite3'
12+
gem 'sqlite3', '~> 1.3.6'
1313
# Use Puma as the app server
1414
gem 'puma', '~> 3.0'
1515
# Use SCSS for stylesheets

examples/simple/init_data.rb

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
require 'learnosity/sdk/request/init'
66

7+
itembank_uri = URI('https://data.learnosity.com/v1/itembank/items')
8+
79
security_packet = {
810
# XXX: This is a Learnosity Demos consumer; replace it with your own consumer key
911
'consumer_key' => 'yis0TYCu7U9V4o7M',
@@ -14,7 +16,7 @@
1416
data_request = { 'limit' => 1 }
1517

1618
# Do 5 subsequent requests using the `next` pointer
17-
[1,2,3,4,5].each do |reqno|
19+
[1,2,3,4,5].each do |reqno|
1820
init = Learnosity::Sdk::Request::Init.new(
1921
'data',
2022
security_packet,
@@ -24,16 +26,15 @@
2426

2527
request = init.generate
2628

27-
itembankUri = URI('https://data.learnosity.com/v1/itembank/items')
28-
puts ">>> [#{itembankUri} (#{reqno})] #{JSON.generate(request)}"
29+
puts ">>> [#{itembank_uri} (#{reqno})] #{JSON.generate(request)}"
2930

30-
res = Net::HTTP.post_form(itembankUri, request)
31+
res = Net::HTTP.post_form(itembank_uri, request)
3132

3233
puts "<<< [#{res.code}] #{res.body}"
3334

3435
response = JSON.parse(res.body)
35-
if ( !response['meta']['next'].nil? \
36-
and !response['meta']['records'].nil? and response['meta']['records'] > 0)
36+
if !response['meta']['next'].nil? \
37+
and !response['meta']['records'].nil? and response['meta']['records'] > 0
3738
data_request['next'] = response['meta']['next']
3839
end
3940
end

learnosity-sdk.gemspec

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ Gem::Specification.new do |spec|
3030
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
3131
spec.require_paths = ["lib"]
3232

33+
spec.add_runtime_dependency "sys-uname", "~> 1.0"
3334
spec.add_development_dependency "bundler", ">= 1.14"
3435
spec.add_development_dependency "rake", "~> 10.0"
3536
spec.add_development_dependency "rspec", "~> 3.0"

0 commit comments

Comments
 (0)