diff --git a/docs/config.rst b/docs/config.rst index 44301deeaa81..e750ded93423 100644 --- a/docs/config.rst +++ b/docs/config.rst @@ -45,7 +45,20 @@ Optional settings release: '721e41770371db95eee98ca2707686226b993eda' } - Can also be defined with ``Raven.setReleaseContext('721e41770371db95eee98ca2707686226b993eda')``. + Can also be defined with ``Raven.setRelease('721e41770371db95eee98ca2707686226b993eda')``. + +.. describe:: serverName + + Typically this would be the server name, but that doesn’t exist on + all platforms. Instead you may use something like the device ID, as it + indicates the host which the client is running on. + + .. code-block:: javascript + + { + serverName: device.uuid + } + .. describe:: tags diff --git a/src/raven.js b/src/raven.js index 0c991fa55d5c..258c5755dc16 100644 --- a/src/raven.js +++ b/src/raven.js @@ -778,6 +778,8 @@ function send(data) { // Include the release if it's defined in globalOptions if (globalOptions.release) data.release = globalOptions.release; + // Include server_name if it's defined in globalOptions + if (globalOptions.serverName) data.server_name = globalOptions.serverName; if (isFunction(globalOptions.dataCallback)) { data = globalOptions.dataCallback(data) || data; diff --git a/test/raven.test.js b/test/raven.test.js index c647a4ef0e53..27fe0695c525 100644 --- a/test/raven.test.js +++ b/test/raven.test.js @@ -1153,6 +1153,38 @@ describe('globals', function() { }); }); + it('should attach server_name if available', function() { + this.sinon.stub(window, 'isSetup').returns(true); + this.sinon.stub(window, 'makeRequest'); + this.sinon.stub(window, 'getHttpData').returns({ + url: 'http://localhost/?a=b', + headers: {'User-Agent': 'lolbrowser'} + }); + + globalOptions = { + projectId: 2, + logger: 'javascript', + serverName: 'abc123', + }; + + send({foo: 'bar'}); + assert.deepEqual(window.makeRequest.lastCall.args[0].data, { + project: '2', + server_name: 'abc123', + logger: 'javascript', + platform: 'javascript', + request: { + url: 'http://localhost/?a=b', + headers: { + 'User-Agent': 'lolbrowser' + } + }, + event_id: 'abc123', + foo: 'bar', + extra: {'session:duration': 100} + }); + }); + it('should pass correct opts to makeRequest', function() { this.sinon.stub(window, 'isSetup').returns(true); this.sinon.stub(window, 'makeRequest');