@runsidekick/sidekick-agent-nodejs
    TypeScript icon, indicating that this package has built-in type declarations

    0.0.19 • Public • Published

    Sidekick Node.js Agent

    Sidekick Licence  Sidekick Discord Channel  Foresight monitoring  Sidekick Sandbox 

    Table of Contents
    1. What is Sidekick?
    2. Sidekick Node.js Agent
    3. Usage
    4. Build the agent
    5. Official Sidekick Agents
    6. Resources
    7. Questions? Problems? Suggestions?
    8. Contact

    What is Sidekick?

    Sidekick is a live application debugger that lets you troubleshoot your applications while they keep on running.

    Add dynamic logs and put non-breaking breakpoints in your running application without the need of stopping & redeploying.

    Sidekick Open Source is here to allow self-hosting and make live debugging more accessible. Built for everyone who needs extra information from their running applications.

    Sidekick Actions:

    Sidekick has two major actions; Tracepoints & Logpoints.

    • A tracepoint is a non-breaking remote breakpoint. In short, it takes a snapshot of the variables when the code hits that line.
    • Logpoints open the way for dynamic(on-demand) logging to Sidekick users. Replacing traditional logging with dynamic logging has the potential to lower stage sizes, costs, and time for log searching while adding the ability to add new logpoints without editing the source code, redeploying, or restarting the application.

    Supported runtimes: Java, Python, Node.js

    To learn more about Sidekick features and capabilities, see our web page.

    (back to top)

    Sidekick Node.js Agent

    Sidekick Node.js agent allows you to inject tracepoints (non-breaking breakpoints) and logpoints dynamically to capture call stack snapshots (with variables) and add log messages on the fly without code modification, re-build and re-deploy. So it helps you, your team, and your organization to reduce MTTR (Minimum Time to Repair/Resolve).

    To achieve this, Sidekick Node.js agent makes use of V8's inspector API.

    The advantages of Sidekick over classical APM solutions is that, Sidekick

    • can debug and trace any location (your code base or 3rd party dependency) in your application, not just the external (DB, API, etc ...) calls like APM solutions
    • has zero overhead when you don't have any tracepoint or logpoint but APMs have always
    • doesn't produce too much garbage data because it collects data only at the certain points you specified as long as that point (tracepoint/logpoint) is active

    Usage

    npm install @runsidekick/sidekick-agent-nodejs
    

    Docs

    There are two way to integrate Sidekick agent to your application.

    Integrate Agent with Environment Variable

    You can easily integrate Sidekick using below environment variables.

    • set SIDEKICK_APIKEY environment variable with your Sidekick api key.
    • set NODE_OPTIONS environment variable with '-r @runsidekick/sidekick-agent-nodejs/dist/bootstrap'

    Integrate Agent with Code

    You can easily integrate Sidekick adding below code block to top of your project.

    JS example

    const SidekickDebugger = require('@runsidekick/sidekick-agent-nodejs');
    
    SidekickDebugger.start({ 
        apiKey: '<Your_Api_Key>'
    });
    
    ...

    TS example

    import * as SidekickDebugger from '@runsidekick/sidekick-agent-nodejs';
    
    SidekickDebugger.start({ 
        apiKey: '<Your_Api_Key>'
    });
    
    ...

    Configs

    Config Requirement Environment Variable Default
    apiKey Required SIDEKICK_APIKEY None
    logLevel Optional SIDEKICK_AGENT_LOG_LEVEL info
    disable Optional SIDEKICK_AGENT_DISABLE false
    brokerHost Optional SIDEKICK_AGENT_BROKER_HOST Sidekick broker address
    brokerPort Optional SIDEKICK_AGENT_BROKER_PORT Sidekick broker port
    brokerClient Optional SIDEKICK_AGENT_BROKER_CLIENT Logged in user
    applicationId Optional SIDEKICK_AGENT_APPLICATION_ID Generated by agent
    applicationName Optional SIDEKICK_AGENT_APPLICATION_NAME Empty string
    applicationInstanceId Optional SIDEKICK_AGENT_APPLICATION_INSTANCE_ID Generated by agent
    applicationVersion Optional SIDEKICK_AGENT_APPLICATION_VERSION Empty string
    applicationStage Optional SIDEKICK_AGENT_APPLICATION_STAGE Empty string
    applicationTag Optional SIDEKICK_AGENT_APPLICATION_TAG None
    maxFrames Optional SIDEKICK_AGENT_MAX_FRAMES 20
    maxExpandFrames Optional SIDEKICK_AGENT_MAX_EXPAND_FRAMES 1
    maxProperties Optional SIDEKICK_AGENT_MAX_PROPERTIES 10
    maxParseDepth Optional SIDEKICK_AGENT_MAX_PARSE_DEPTH 3
    propertyAccessClassification Optional SIDEKICK_AGENT_PROPERTY_ACCESS_CLASSIFICATION ENUMERABLE-OWN
    scriptPrefix Optional SIDEKICK_AGENT_SCRIPT_PREFIX None
    rejectOnStartup Optional SIDEKICK_AGENT_REJECT_ON_STARTUP false
    captureFrameDataReductionCallback Optional None
    logMessageDataReductionCallback Optional None
    errorCollectionEnable Optional SIDEKICK_AGENT_ERROR_COLLECTION_ENABLE false
    errorCollectionEnableCaptureFrame Optional SIDEKICK_AGENT_ERROR_COLLECTION_CAPTURE_FRAME false

    Valid Config Values

    • propertyAccessClassification (SIDEKICK_AGENT_PROPERTY_ACCESS_CLASSIFICATION) configuration can take one of following values:
      • ENUMERABLE-OWN (default value)
      • ENUMERABLE-OWN-AND-ENUMERABLE-PARENT
      • ENUMERABLE-OWN-AND-NON-ENUMERABLE-OWN
      • ENUMERABLE-OWN-AND-NON-ENUMERABLE-OWN-ENUMERABLE-PARENT

    Build

    • npm run clean-build:all

    Official Sidekick Agents

    Resources:

    Questions? Problems? Suggestions?

    To report a bug or request a feature, create a GitHub Issue. Please ensure someone else has not created an issue for the same topic.

    (back to top)

    Contact

    Reach out on the Discord. A fellow community member or Sidekick engineer will be happy to help you out.

    (back to top)

    Keywords

    none

    Install

    npm i @runsidekick/sidekick-agent-nodejs

    DownloadsWeekly Downloads

    72

    Version

    0.0.19

    License

    AGPL

    Unpacked Size

    276 kB

    Total Files

    123

    Last publish

    Collaborators

    • bcaglayan
    • yasinkalafat
    • sidekick-user