Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
if (this.isEnabled() && !this._initialized) {
this._initialized = true
const configService = this.serviceFactory.getService('ConfigService')
/**
* Set Agent version to be sent as part of metadata to the APM Server
*/
configService.setVersion('4.6.0')
this.config(config)
const loggingService = this.serviceFactory.getService('LoggingService')
/**
* Deactive agent when the active config flag is set to false
*/
if (configService.isActive()) {
this.serviceFactory.init()
const flags = getInstrumentationFlags(
configService.get('instrument'),
configService.get('disableInstrumentations')
)
const performanceMonitoring = this.serviceFactory.getService(
'PerformanceMonitoring'
)
performanceMonitoring.init(flags)
if (flags[ERROR]) {
const errorLogging = this.serviceFactory.getService('ErrorLogging')
errorLogging.registerListeners()
}
const sendPageLoad = () =>
flags[PAGE_LOAD] && this._sendPageLoadMetrics()
export default function bootstrap() {
if (alreadyBootstrap) {
return enabled
}
alreadyBootstrap = true
if (isPlatformSupported()) {
patchAll()
enabled = true
} else if (typeof window !== 'undefined') {
/**
* Print this error message only on the browser console
* on unsupported browser versions
*/
console.log('[Elastic APM] platform is not supported!')
}
return enabled
}
export default function bootstrap() {
if (alreadyBootstrap) {
return enabled
}
alreadyBootstrap = true
if (isPlatformSupported()) {
patchAll()
enabled = true
} else if (typeof window !== 'undefined') {
/**
* Print this error message only on the browser console
* on unsupported browser versions
*/
console.log('[Elastic APM] platform is not supported!')
}
return enabled
}
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
*/
import bootstrap from './bootstrap'
import { createServiceFactory } from '@elastic/apm-rum-core'
import ApmBase from './apm-base'
const enabled = bootstrap()
const serviceFactory = createServiceFactory()
const apmBase = new ApmBase(serviceFactory, !enabled)
if (typeof window !== 'undefined') {
window.elasticApm = apmBase
}
const init = apmBase.init.bind(apmBase)
export default init
export { init, apmBase, ApmBase, apmBase as apm }
function createTracer(apmBase) {
return createElasticTracer(apmBase.serviceFactory)
}
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
*/
const indexExports = require('./index')
const opentracing = require('./opentracing')
const { extend } = require('@elastic/apm-rum-core/src/common/utils')
module.exports = extend({}, indexExports, opentracing)