Github user SolidWallOfCode commented on a diff in the pull request:

    https://github.com/apache/trafficserver/pull/229#discussion_r33060139
  
    --- Diff: proxy/StatSystem.h ---
    @@ -49,69 +49,75 @@
     class TransactionMilestones
     {
     public:
    +  // Used for array indexes, insert new value before _LAST one
    +  enum Milestone {
    +    ////////////////////////////////////////////////////////
    +    // user agent:                                        //
    +    // user_agent_begin represents the time this          //
    +    // transaction started. If this is the first          //
    +    // transaction in a connection, then user_agent_begin //
    +    // is set to accept time. otherwise it is set to      //
    +    // first read time.                                   //
    +    ////////////////////////////////////////////////////////
    +    UA_BEGIN = 0,
    +    UA_FIRST_READ,
    +    UA_READ_HEADER_DONE,
    +    UA_BEGIN_WRITE,
    +    UA_CLOSE,
    +
    +    ////////////////////////////////////////////////////////
    +    // server (origin_server , parent, blind tunnnel //
    +    ////////////////////////////////////////////////////////
    +    SERVER_FIRST_CONNECT,
    +    SERVER_CONNECT,
    +    SERVER_CONNECT_END,
    +    SERVER_BEGIN_WRITE,      //  http only
    +    SERVER_FIRST_READ,       //  http only
    +    SERVER_READ_HEADER_DONE, //  http only
    +    SERVER_CLOSE,
    +
    +    CACHE_OPEN_READ_BEGIN,
    +    CACHE_OPEN_READ_END,
    +    CACHE_OPEN_WRITE_BEGIN,
    +    CACHE_OPEN_WRITE_END,
    +
    +    DNS_LOOKUP_BEGIN,
    +    DNS_LOOKUP_END,
    +
    +    ///////////////////
    +    // state machine //
    +    ///////////////////
    +    SM_START,
    +    SM_FINISH,
    +
    +    //////////////////
    +    // API activity //
    +    //////////////////
    +    // Total amount of time spent in API calls converted to a timestamp.
    +    // (subtract @a sm_start to get the actual time)
    +    /// Time spent in API callout.
    +    PLUGIN_ACTIVE,
    +    /// Time spent in API state during the transaction.
    +    PLUGIN_TOTAL,
    +    LAST_ENTRY
    +    // TODO: Should we instrument these at some point?
    +    // CACHE_READ_BEGIN;
    +    // CACHE_READ_END;
    +    // CACHE_WRITE_BEGIN;
    +    // CACHE_WRITE_END;
    +  };
    +
       TransactionMilestones()
    -    : ua_begin(0), ua_first_read(0), ua_read_header_done(0), 
ua_begin_write(0), ua_close(0), server_first_connect(0),
    -      server_connect(0), server_connect_end(0), server_begin_write(0), 
server_first_read(0), server_read_header_done(0),
    -      server_close(0), cache_open_read_begin(0), cache_open_read_end(0), 
cache_open_write_begin(0), cache_open_write_end(0),
    -      dns_lookup_begin(0), dns_lookup_end(0), sm_start(0), sm_finish(0), 
plugin_active(0), plugin_total(0)
    -  {
    -  }
    -
    -
    -  ////////////////////////////////////////////////////////
    -  // user agent:                                        //
    -  // user_agent_begin represents the time this          //
    -  // transaction started. If this is the first          //
    -  // transaction in a connection, then user_agent_begin //
    -  // is set to accept time. otherwise it is set to      //
    -  // first read time.                                   //
    -  ////////////////////////////////////////////////////////
    -  ink_hrtime ua_begin;
    -  ink_hrtime ua_first_read;
    -  ink_hrtime ua_read_header_done;
    -  ink_hrtime ua_begin_write;
    -  ink_hrtime ua_close;
    -
    -  ////////////////////////////////////////////////////////
    -  // server (origin_server , parent, blind tunnnel //
    -  ////////////////////////////////////////////////////////
    -  ink_hrtime server_first_connect;
    -  ink_hrtime server_connect;
    -  ink_hrtime server_connect_end;
    -  ink_hrtime server_begin_write;      //  http only
    -  ink_hrtime server_first_read;       //  http only
    -  ink_hrtime server_read_header_done; //  http only
    -  ink_hrtime server_close;
    -
    -  ink_hrtime cache_open_read_begin;
    -  ink_hrtime cache_open_read_end;
    -  ink_hrtime cache_open_write_begin;
    -  ink_hrtime cache_open_write_end;
    -
    -  ink_hrtime dns_lookup_begin;
    -  ink_hrtime dns_lookup_end;
    -
    -  ///////////////////
    -  // state machine //
    -  ///////////////////
    -  ink_hrtime sm_start;
    -  ink_hrtime sm_finish;
    -
    -  //////////////////
    -  // API activity //
    -  //////////////////
    -  // Total amount of time spent in API calls converted to a timestamp.
    -  // (subtract @a sm_start to get the actual time)
    -  /// Time spent in API callout.
    -  ink_hrtime plugin_active;
    -  /// Time spent in API state during the transaction.
    -  ink_hrtime plugin_total;
    -
    -  // TODO: Should we instrument these at some point?
    -  // ink_hrtime  cache_read_begin;
    -  // ink_hrtime  cache_read_end;
    -  // ink_hrtime  cache_write_begin;
    -  // ink_hrtime  cache_write_end;
    +  { // constructor to initialize array elements to zero in case user wants 
to
    +    for (int i = 0; i < LAST_ENTRY; i++)
    +      milestones[i] = 0;
    +  }
    +
    +  void ms_set(Milestone ms, ink_hrtime val);
    +  ink_hrtime ms_get(Milestone ms) const;
    --- End diff --
    
    `operator[]` ?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

Reply via email to