This project is mirrored from https://gitee.com/cowcomic/pixie.git. Pull mirroring failed .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer.
  1. 18 Feb, 2022 4 commits
  2. 17 Feb, 2022 13 commits
    • Phillip Kuznetsov's avatar
      [Cleanup] Remove unused variable · bea3b23b
      Phillip Kuznetsov authored
      
      Summary: Simple fix. Something I spotted while documenting the data pipelines.
      
      Test Plan: Unit tests pass
      
      Reviewers: michelle, nserrino
      
      Reviewed By: michelle
      Signed-off-by: default avatarPhillip Kuznetsov <pkuznetsov@pixielabs.ai>
      
      Differential Revision: https://phab.corp.pixielabs.ai/D10814
      
      GitOrigin-RevId: b33a01cf0024d2dc21b02e71d9f10a02eb7d16ab
      bea3b23b
    • Omid Azizi's avatar
      Mux Tracer: ByteSize · 63394904
      Omid Azizi authored
      
      Summary: Update the Mux protocol ByteSize() function to be more accurate.
      
      Test Plan: TBD.
      
      Reviewers: #stirling, rcheng
      
      Reviewed By: #stirling, rcheng
      
      Subscribers: rcheng
      Signed-off-by: default avatarOmid Azizi <oazizi@pixielabs.ai>
      
      Differential Revision: https://phab.corp.pixielabs.ai/D10745
      
      GitOrigin-RevId: 0ae374ae50b05e71b5c3a6b3dbca5b042e4a33b9
      63394904
    • Omid Azizi's avatar
      Naming: Rename test container · bbb9715e
      Omid Azizi authored
      
      Summary: Use more inclusive language.
      
      Test Plan: This is just a name change. Rely on existing tests.
      
      Reviewers: #stirling, yzhao
      
      Reviewed By: #stirling, yzhao
      Signed-off-by: default avatarOmid Azizi <oazizi@pixielabs.ai>
      
      Differential Revision: https://phab.corp.pixielabs.ai/D10808
      
      GitOrigin-RevId: 9f3c06a144a838e09347adf6528eba8da49e9387
      bbb9715e
    • James Bartlett's avatar
      [PP-3211] Add socket tracer benchmark framework. · 403a3edd
      James Bartlett authored
      
      Summary:
        - Added a data generation framework, that separates the generation of the data from the generation of the `pos` byte label for each event. Users of the data generation framework specify a `RecordGenerator` and a `PosGenerator`. The `RecordGenerator` has a single method `Next` that should return a record (a collection of traffic direction, frame pairs) that represents a single record that would be pushed to the TableStore if successfully parsed. The `PosGenerator` has a method that returns the byte position for the next event given the next event's size, and a method to signal the next polling iteration of data (useful for adding a gap in byte position between simulated polling iteration). Using the provided `PosGenerator` and `RecordGenerator` the data generation framework creates events per connection per simulated polling iteration (RecordGenerators are instantiated per connection and PosGenerators are instantiated per direction per connection).
        - To keep this diff as small as possible I only added a minimal set of Pos and Record generators in order to benchmark only HTTP1 traffic with continuous `pos` labels. Future diffs add more interesting PosGenerators as well as simple RecordGenerators for a variety of protocols.
        - Added the benchmark itself. The benchmark first generates all the necessary data using the above framework (as specified by `BenchmarkDataGenerationSpec`). Then during a single benchmark iteration, it will for each simulated "polling" iteration: push each event for that iteration to the SocketTraceConnector as if it had come from BPF (eg. via HandleDataEvent), then call `TransferData` once. During the first benchmark iteration the `MemoryTracker` will be enabled to keep track of starting, ending and peak memory usage for that particular benchmark. Finally after all benchmark iterations, the benchmark reports a wide variety of statistics. The statistics reported are: `PollIters` (the number of simulated polling iterations), `AllocPeak` (the maximum memory used during the benchmark minus the memory used before the benchmark started processing data), `PhysMem{Start,End}` (The physical memory used at the start/end of the benchmark, physical memory includes memory that the program has freed to the allocator but the allocator hasn't released to the OS), `AllocMem{Start,End}` (The memory that has not been freed to the allocator at the start/end of the benchmark), `EquivalendWorkloadThroughput` (The throughput in B/s of a workload that would produce similar load to this benchmark), `Bytes{Input/Output}`/`Records{Input/Output}` (The amount of bytes/records of data input/output to/from the benchmark, note that records input should equal records output if no data was lost), and finally `NumEvents` (the total number of events processed).
        - Because there are so many statistics, I added a variety of flags to control what statistics get printed, by default only `AllocPeak` and `PollIters` are displayed.
      
      Blocked by D10786, D10784, D10750
      
      Test Plan: No production changes, tested that the new benchmarking code runs the benchmark successfully, and that for each protocol the generated data can be successfully parsed.
      
      Reviewers: #stirling, oazizi
      
      Reviewed By: #stirling, oazizi
      
      Subscribers: yzhao, oazizi
      
      JIRA Issues: PP-3211
      Signed-off-by: default avatarJames Bartlett <jamesbartlett@pixielabs.ai>
      
      Differential Revision: https://phab.corp.pixielabs.ai/D10793
      
      GitOrigin-RevId: b0e62c9dbdb3b9e6f70691d127bf74b1b207a78e
      403a3edd
    • Natalie Serrino's avatar
      Add semantic type rules for px.abs · bc676621
      Natalie Serrino authored
      
      Summary: I tried to do a px.abs on the result of px.parse_duration, but noticed that it didn't preserve the DURATION_NS type. This diff adds the correct semantic type to the result of px.abs.
      
      Test Plan: not needed, we use these same rules elsewhere, just need to add them here
      
      Reviewers: philkuz, jamesbartlett
      
      Reviewed By: jamesbartlett
      Signed-off-by: default avatarNatalie Serrino <nserrino@pixielabs.ai>
      
      Differential Revision: https://phab.corp.pixielabs.ai/D10809
      
      GitOrigin-RevId: d7a22eac106a04fa7ac9c806457b594f18b1887d
      bc676621
    • yzhao1012's avatar
      [CLEANUP] Move --sources flag to stirling.cc so it takes effect for PEM as well · ca0bae76
      yzhao1012 authored
      
      Summary: This allows skaffold to change PEM source connectors without making code changes
      
      Test Plan: Tested with skaffold
      
      Reviewers: #stirling, jps
      
      Reviewed By: #stirling, jps
      
      Subscribers: oazizi
      Signed-off-by: default avataryzhao1012 <yzhao@pixielabs.ai>
      
      Differential Revision: https://phab.corp.pixielabs.ai/D10794
      
      GitOrigin-RevId: 637ba96e276b1a5c3edecd1d16a4e36569fb9400
      ca0bae76
    • yzhao1012's avatar
      [CLEANUP] Move system_info.{cc,h} to src/stirling/utils · 2458fbb0
      yzhao1012 authored
      
      Summary:
      One example of improving organization. Similar headers, like system_headers.{cc,h} are already
      in src/stirling/utils.
      
      Test Plan: Move code files, Jenkins build covers this
      
      Reviewers: #stirling, oazizi
      
      Reviewed By: #stirling, oazizi
      Signed-off-by: default avataryzhao1012 <yzhao@pixielabs.ai>
      
      Differential Revision: https://phab.corp.pixielabs.ai/D10806
      
      GitOrigin-RevId: 3f869ba454c22b363f428ea7614bfd17cd6246f2
      2458fbb0
    • James Bartlett's avatar
      [PP-3211] Add cql wire data generation. · 2dc928ce
      James Bartlett authored
      
      Summary:
      For the purposes of the benchmark, we want to be able to generate a bunch of wire data for each protocol. This diff adds the utilities to make data generation easier. These utilities could also be used in the tests instead of the ad-hoc char[] byte buffers that the tests currently used. This diff adds a couple examples in the tests to demonstrate this usage.
      
      Note, this diff also restructures the build file so that test utilities don't get built into the main binary.
      
      Test Plan: No functional changes, so relying on existing tests. This diff also increases test coverage.
      
      Reviewers: #stirling, oazizi
      
      Reviewed By: #stirling, oazizi
      
      Subscribers: oazizi, yzhao
      
      JIRA Issues: PP-3211
      Signed-off-by: default avatarJames Bartlett <jamesbartlett@pixielabs.ai>
      
      Differential Revision: https://phab.corp.pixielabs.ai/D10784
      
      GitOrigin-RevId: 9317f1562fc37ce1a7155599e7f8d493456a20d2
      2dc928ce
    • Omid Azizi's avatar
      DNS parser ByteSize(): Re-implement to avoid const_cast · 4fe6d481
      Omid Azizi authored
      
      Summary:
      The old implementation of DNS' ByteSize() used a const_cast which can be avoided.
      
      This diff cleans that up.
      
      Test Plan: No functional change, so existing tests.
      
      Reviewers: #stirling, yzhao
      
      Reviewed By: #stirling, yzhao
      
      Subscribers: yzhao
      Signed-off-by: default avatarOmid Azizi <oazizi@pixielabs.ai>
      
      Differential Revision: https://phab.corp.pixielabs.ai/D10776
      
      GitOrigin-RevId: 802c504f386745585438be885b9888ab32d35edc
      4fe6d481
    • James Bartlett's avatar
      [PP-3211] Add pgsql wire data generation. · 45433dce
      James Bartlett authored
      
      Summary:
      For the purposes of the socket tracer benchmark, we want to be able to generate a bunch of wire data for each protocol. This diff adds the utilities to make data generation easier for pgsql. These utilities could also be used in the tests instead of the ad-hoc char[] byte buffers that the tests currently used. I added a couple examples in the tests to demonstrate this usage.
      
      This diff also restructures the build file, such that the test data is not compiled with the main cc library.
      
      Test Plan: No functional changes, relying on existing tests. Note that this diff increases test coverage.
      
      Reviewers: #stirling, yzhao
      
      Reviewed By: #stirling, yzhao
      
      Subscribers: yzhao
      
      JIRA Issues: PP-3211
      Signed-off-by: default avatarJames Bartlett <jamesbartlett@pixielabs.ai>
      
      Differential Revision: https://phab.corp.pixielabs.ai/D10786
      
      GitOrigin-RevId: 6d379b8aac9964bc27959f0378483d29d911409b
      45433dce
    • Vihang Mehta's avatar
      Convert to POST message and parse params from JSON body · 819e5959
      Vihang Mehta authored
      Summary: Use POST message type and JSON parse params.
      
      Test Plan: `curl -X POST -vvv --raw  -H 'Content-Type: application/json' --data '{"chunk_size":10, "body_size":100}' http://localhost:8111/`
      
      
      
      Reviewers: zasgar, nserrino
      
      Reviewed By: zasgar
      Signed-off-by: default avatarVihang Mehta <vihang@pixielabs.ai>
      
      Differential Revision: https://phab.corp.pixielabs.ai/D10804
      
      GitOrigin-RevId: fea928b276a065840723681a097042a5696a11a5
      819e5959
    • James Bartlett's avatar
      Add util for converting Int to big endian bytes. · 6445cd00
      James Bartlett authored
      
      Summary: This util will be useful for generating network packets for benchmarking purposes.
      
      Test Plan: Added unit test for new utility. Utility is currently unused so no need for more testing than that.
      
      Reviewers: #stirling, oazizi
      
      Reviewed By: #stirling, oazizi
      
      Subscribers: oazizi
      Signed-off-by: default avatarJames Bartlett <jamesbartlett@pixielabs.ai>
      
      Differential Revision: https://phab.corp.pixielabs.ai/D10762
      
      GitOrigin-RevId: 915d2be9003d40c6cc2c1b7b38917763ba2d7817
      6445cd00
    • Zain Asgar's avatar
      PP-3222 - Create client for HTTP sequence tests · 1e43e0da
      Zain Asgar authored
      Summary:
      This is the first pass at the client for HTTP requests only.
      I'll do some reorganization of the directories after this lands for more consistency.
      
      Test Plan:
      Run manually
      
      ```./client seq http --addr http://xyz:8080/seq_test
      
       -n 100000 -c 50 -s 2000000 -r 1024`
      
      Reviewers: vihang, michelle, nserrino
      
      Reviewed By: nserrino
      
      JIRA Issues: PP-3222
      Signed-off-by: default avatarZain Asgar <zasgar@pixielabs.ai>
      
      Differential Revision: https://phab.corp.pixielabs.ai/D10796
      
      GitOrigin-RevId: 14f490a87cc3e1674b972fb2dd594b2a00e68c82
      1e43e0da
  3. 16 Feb, 2022 18 commits
  4. 15 Feb, 2022 5 commits