npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

alexa-logger

v1.1.2

Published

Parses request and response log files from Alexa

Downloads

7

Readme

alexa-logger

Utility functionality that manages request/response for Alexa utterances. This module generates a report that lets you see the interaction of your sessions grouped by user.

Usage

The exposed functions from this library are saveLog which your Alexa skill should call to save a request and response in a supplied AWS S3 bucket and processLog which you can call offline to process a directory of log files for easy consumption.

saveLog(event, response, options, callback)

The arguments to this function are:

  • event - The event as passed into your skill's exported function
  • response - The response from your skill
  • options - an options structure defined below
  • callback - an optional callback function

The options structure is composed of the following fields with the following default values:

{
  bucket,     // Required - the name of the S3 bucket to write to
  region,     // AWS region hosting the S3 bucket; default is 'us-east-1'
  keyPrefix,  // Prefix for the key that will be generated in this bucket
  fullLog,    // If true, the full request is logged - by default
              // only elements reported on in processLogs are retained
}

For example, if you want to write to a 'logs' directory off a 'mydata' S3 bucket, you could call this function as follows:

saveLog(event, 'Welcome to my skill', {bucket: 'mydata', keyPrefix: 'logs/'});

processLogs(options, resultFile, callback)

This function will process the logs from a directory and organize them by user and by session for easy processing. The content will be saved into a comma-separated file that you can easily view to get a sense of the intents and slot data being passed into your skill, as well as the responses that you are providing to your end customers.

The arguments to this function are:

  • options - an options structure defined below
  • resultFile - the file to write the final results to
  • callback - an optional callback function

The options structure is composed of the following fields:

{
  directory,   // If provided, logs will be read from local filesystem
  s3: {        // If provided, this structure contains details about
               // the S3 bucket containing the logs to process
    bucket,    // Required - the name of the S3 bucket
    region,    // AWS region hosting the S3 bucket; default is 'us-east-1'
    keyPrefix, // The prefix for the keys to read
  },
  daterange: { // v1.1 or higher - date range of logs to retrieve
    start,     // Starting date as a primative value - logs that have
               // a timestamp strictly greater than this will be returned
               // If absent, all logs prior to end date will be returned
    end,       // Ending date as a primative value - logs that have
               // a timestamp strictly less than this will be returned
               // If absent, all logs after start date will be returned
  },
}

The callback function, if specified will be called with the following parameters:

  • error - an error string, if any
  • info - v1.1 or higher, a structure with additional information, provided when there is no error

The info structure is composed of the following fields:

{
  last,   // The last timestamp for a logfile. Passing this
          // in as daterange.start will cause only new logs to
          // be reviewed on a subsequent call
}

I hope you find this utility module useful; contributions are welcome!