Website Analytics

Keep your valuable data in-house

by Read Write Tools
Abstract
The rwserve-analytics command line tool for parsing the log file created by Read Write Serve is presented. Analysis is performed across distinct key-value pairs captured from HTTP request and response headers. Results are formatted as plain text, HTML or JSON.

Motivation

Understanding web traffic is important for server performance, business forecasting, and campaign evaluation, as well as numerous other technical and business related goals.

For a long time Google Analytics has been the "go to" solution for webmasters wanting to fill this need without writing their own log analyzers. Unfortunately this means ceding control over a valuable source of information. The rwserve-analytics software provides a secure, in-house solution to web traffic analysis.

Usage

The software can be invoked from the command line like this:

[user@host]# rwserve-analytics [options]

Where the [options] are:

  • --since=time-value scan log messages that occurred since this date.
  • --until=time-value scan log messages that occurred until this date.
  • --authority=hostname,hostname,... comma-separated list of which authorities to include in the report.
  • --messages=option,option,... comma-separated list of which message types to monitor.
  • --tracking=mimetype,mimetype,... comma-separated list of which content-type mimetypes should have detailed tracking of 'coming-from' and 'going-to'.
  • --tabulate=keyname,keyname,... comma-separated list of logged items to stratify and tabulate.
  • --select=keyname:keyvalue select all facets where the logged item with the specified key name is equal to the specified key value.
  • --join=keyname,keyname,... comma-separated list of logged items to capture and emit.
  • --resource=path list all facets going through this resource path.
  • --campaign=qs-key,qs-key,... list all facets accessed with any of these query-string keys.
  • --find=pattern search for this pattern in request/response logged items.
  • --thread=session how the visitor's path during this session, from its origin to its point of departure.
  • --trace=remote-address show all visits from a remote address.
  • --dump=facet-id,facet-id,... show the complete details of all logged items for the facet(s).
  • --output=format how to format the output: plain text, HTML, JSON.
  • --argv output the effective argv parameters used for the report.

Refer to RWSERVE Analytics for details on these options and how to specify them.

License and availability

This tool is distributed with the RWSERVE HTTP/2 Web Server. It is not available separately.

RWSERVE Analytics Software License Agreement

Copyright © 2020 Read Write Tools.

  1. This Software License Agreement ("Agreement") is a legal contract between you and Read Write Tools ("RWT"). The "Materials" subject to this Agreement include the software app "RWSERVE Analytics" and its associated documentation.
  2. By installing, copying or otherwise using the Materials, you agree to abide by the terms of this Agreement. If you choose not to agree with these provisions, you must uninstall and delete all copies of the Materials.
  3. The Materials are protected by United States copyright law, patent law, and trade secret law, as well as international treaties on intellectual property rights. The Materials are licensed, not sold to you, and can only be used in accordance with the terms of this Agreement. RWT is and remains the owner of all titles, rights and interests in the Materials, and RWT reserves all rights not specifically granted under this Agreement.
  4. Subject to the terms of this Agreement, RWT hereby grants to you a limited, non-exclusive license to use the Materials subject to the following conditions:
    • You are allowed to install the Materials on more than one computer or device, as long as the Materials will not be used on more than one computer or device simultaneously. You may make additional copies of the Materials for backup purposes only.
    • You may not distribute, publish, make publicly available, sub-license, sell, rent, or lease the Materials.
    • You may not extract, decompile, or reverse engineer any binary or source code included in the Materials. Your license to use the Materials is limited to its use in its original packaged format, and does not include permission to extract or use parts on a separate basis.
  5. THE MATERIALS ARE PROVIDED BY READ WRITE TOOLS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL READ WRITE TOOLS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  6. Portions of the Material are covered by third-party software license agreements. Those agreements have their own terms and conditions, which may include restrictions and limitations on intellectual property use, distribution, publication, and modification that differ from this Agreement. Those agreements are:
    1. Node.js License
    2. V8 License
    3. nghttp2 License
    4. Joezone License
    5. Blue Phrase Processor Software License Agreement

    The terms and conditions of those third-party agreements apply to the respective intellectual property covered by those software license agreements, and do not extend to any Material owned by Read Write Tools.

  7. This license is effective until terminated. Without prejudice to any other rights, RWT may terminate your right to use the Materials if you fail to comply with the terms of this Agreement. In such event, you shall uninstall and delete all copies of the Materials.
  8. This Agreement is governed by and interpreted in accordance with the laws of the State of California. If for any reason a court of competent jurisdiction finds any provision of the Agreement to be unenforceable, that provision will be enforced to the maximum extent possible to effectuate the intent of the parties and the remainder of the Agreement shall continue in full force and effect.

Related reading

Website Analytics — Keep your valuable data in-house

🔎