Class ::nsmcp::UnifiedAccessAnalytics

::nsmcp::UnifiedAccessAnalytics[i] create ... \
           [ -database:required database:required ] \
           [ -evictionLimit:integer (default "64") ] \
           [ -ingestBytes:integer (default "16777216") ] \
           [ -ingestMilliseconds:integer (default "2000") ] \
           [ -legacyDatabase (default "") ] \
           [ -maxLineBytes:integer (default "65536") ] \
           [ -maxReadBytes:integer (default "16777216") ] \
           [ -maxRows:integer (default "2000000") ] \
           [ -maxSeconds:integer (default "2") ] \
           [ -mutex (default "") ] \
           [ -parser (default "::nsmcp::accessRecordParser") ] \
           [ -path:required path:required ] \
           [ -retentionSeconds:double (default "86400") ] \
           [ -settings:required settings:required ]

Defined in /usr/local/ns/tcl/nsmcp/log-traffic-unified.tcl

Class Relations

  • class: ::nx::Class[i]
  • superclass: ::nsmcp::AccessAnalytics[i]
::nx::Class create ::nsmcp::UnifiedAccessAnalytics \
     -superclass ::nsmcp::AccessAnalytics

Methods (to be applied on instances)

  • correlateWarnings (scripted, public)

     <instance of nsmcp::UnifiedAccessAnalytics[i]> correlateWarnings \
        samples redactor
    Parameters:
    samples (required)
    redactor (required)

    Testcases:
    No testcase defined.
    return [accessRecordRetry ${:settings} [list next [list $samples $redactor]]]
  • ingest (scripted, public)

     <instance of nsmcp::UnifiedAccessAnalytics[i]> ingest [ from ] \
        [ allowHistory ]

    Compatibility entry point for explicit administrative refreshes only.

    Parameters:
    from (optional)
    allowHistory (optional, defaults to "true")

    Testcases:
    No testcase defined.
    return [:refresh]
  • refresh (scripted, public)

     <instance of nsmcp::UnifiedAccessAnalytics[i]> refresh

    Testcases:
    No testcase defined.
    set gate nsmcp:unified-writer:[ns_info server]
    if {[nsv_incr $gate busy]!=1} {nsv_incr $gate busy -1; return {busy true}}
    try {
        set result [accessRecordRetry ${:settings} [list :refreshLocked]]
        if {![dict exists $result busy]} {nsv_unset -nocomplain nsmcp:access-store:[ns_info server] lastFailure}
        return $result
    } on error {message options} {
        # Do not emit raw log bodies, peers or SQL. Keep the committed
        # checkpoint and expose a bounded error class to subsequent reads.
        set code [lrange [dict get $options -errorcode] 0 2]
        set failedAt [clock seconds]
        set key nsmcp:access-store:[ns_info server]
        if {![nsv_exists $key lastFailure] || $failedAt-[dict get [nsv_get $key lastFailure] at]>=60} {
            ns_log warning "nsmcp: continuous access ingestion paused ($code)"
        }
        nsv_set $key lastFailure [dict create at $failedAt code $code]
        return [dict create failed true code [lrange [dict get $options -errorcode] 0 2]]
    } finally {nsv_incr $gate busy -1}
  • summary (scripted, public)

     <instance of nsmcp::UnifiedAccessAnalytics[i]> summary options
    Parameters:
    options (required)

    Testcases:
    No testcase defined.
    return [accessRecordRetry ${:settings} [list next [list $options]]]