How to use @elastic/apm-rum-core - 6 common examples

To help you get started, we’ve selected a few @elastic/apm-rum-core examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github elastic / apm-agent-rum-js / packages / rum / src / apm-base.js View on Github external
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()
github elastic / apm-agent-rum-js / packages / rum / src / bootstrap.js View on Github external
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
}
github elastic / apm-agent-rum-js / packages / rum / src / bootstrap.js View on Github external
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
}
github elastic / apm-agent-rum-js / packages / rum / src / index.js View on Github external
* 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 }
github elastic / apm-agent-rum-js / packages / rum / src / opentracing.js View on Github external
function createTracer(apmBase) {
  return createElasticTracer(apmBase.serviceFactory)
}
github elastic / apm-agent-rum-js / packages / rum / src / opentracing-entry.js View on Github external
* 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)