1. 27 Dec, 2023 2 commits
    • Vincent Pelletier's avatar
      Make tests executable · fccf36d9
      Vincent Pelletier authored
      To avoid setup.py deprecation warnings without adding new dependencies.
      fccf36d9
    • Vincent Pelletier's avatar
      parallel_parse.sh: Cosmetic changes · ca5ae218
      Vincent Pelletier authored
      Make it a bit more readable.
      Use non-abbreviated arguments when available.
      Use lower-case for variable names, which is the de-facto for non-exported
      variables.
      Shift once instead of after each argument.
      Make the script exit if it expands an unset variable or any call fails.
      ca5ae218
  2. 20 Dec, 2023 1 commit
  3. 20 Apr, 2021 2 commits
  4. 19 Apr, 2021 2 commits
    • Vincent Pelletier's avatar
      apachedex: Tolerate non-ascii URLs. · d743c185
      Vincent Pelletier authored
      Otherwise, if `url` contains non-ascii chars, startswith will fail with
      an error like:
        UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 84: ordinal not in range(128)
      becasue 'http' is unicode. So byte-ify it to avoid this transcoding.
      d743c185
    • Vincent Pelletier's avatar
      apachedex: Add support for non-standard 444 and 499 status codes. · 1cff57c4
      Vincent Pelletier authored
      Give them captions.
      Also, tread 499 as a non-error: client closed the connection before server
      could respond, so it is likely not something the server could be
      considered responsible for. Of course, the response time still matters,
      so if these statuses come after slow responses it will still affect the
      score.
      1cff57c4
  5. 21 Jan, 2021 2 commits
  6. 20 Jan, 2021 1 commit
  7. 02 Mar, 2020 2 commits
    • Vincent Pelletier's avatar
      Bump to 1.7.1 . · 86913b29
      Vincent Pelletier authored
      86913b29
    • Vincent Pelletier's avatar
      Fix NameError. · c0a37b9f
      Vincent Pelletier authored
      Traceback (most recent call last):
        File "apachedex/__init__.py", line 1274, in wrapper
          return func(*args, **kw)
        File "apachedex/__init__.py", line 1586, in main
          site_data.rescale(rescale, getDuration)
        File "apachedex/__init__.py", line 605, in rescale
          for value_date, data in getattr(self, attribute_id).iteritems():
      NameError: global name 'attribute_id' is not defined
      c0a37b9f
  8. 28 May, 2019 3 commits
  9. 19 Mar, 2019 4 commits
    • Jérome Perrin's avatar
    • Jérome Perrin's avatar
      tests: check for zlib/bz2 encoded logs · 10d91ee0
      Jérome Perrin authored
      10d91ee0
    • Jérome Perrin's avatar
      Support non escaped referer in log · 128167a3
      Jérome Perrin authored
      Unlike apache which escape non ascii characters in referrer, caddy
      writes referrer as is. Edge seem to send referrer not escaped, so with
      Edge and caddy we can have non ascii text in referrer.
      
      For lines which cannot be decoded as ASCII, we use python `replace`
      error handler which would in this case allow the line to be processed if
      the decoding problem is only about the encoding of the referrer.
      
      We don't implement this case as "skip and report ill-formed line",
      because python does not provide utilities to do this easily.
      
      Reproduction with caddy:
      
      ```
      curl -k http://localhost -H 'Referer: héhé'
      ```
      
      With apache, `LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" common`
      ```
      127.0.0.1 - - [28/Feb/2019:10:03:33 +0100] "GET / HTTP/1.1" 200 2046 "h\xc3\xa9h\xc3\xa9" "curl/7.50.1" 4
      ```
      
      With caddy, `log / stdout "{remote} {>REMOTE_USER} [{when}] \"{method} {uri} {proto}\" {status} {size} \"{>Referer}\" \"{>User-Agent}\" {latency_ms}"`
      
      ```
      127.0.0.1 - [28/Feb/2019:10:05:00 +0100] "GET / HTTP/2.0" 200 1950 "héhé" "curl/7.50.1" 4
      ```
      128167a3
    • Arnaud Fontaine's avatar
      apachedex: Display row header when hovering its cells (report tables). · 48392feb
      Arnaud Fontaine authored
      When the table is large and requires scrolling, it becomes difficult
      to read so add 'title' attribute to <tr> on 'Stats per module' and
      'Hits per status code' tables. For example when hovering a particular
      cell on a module row, it display the module name.
      
      /reviewed-on nexedi/apachedex!3
      48392feb
  10. 23 Jan, 2018 2 commits
    • Vincent Pelletier's avatar
      Bump to 1.6.3 . · 7905d8cd
      Vincent Pelletier authored
      7905d8cd
    • Jérome Perrin's avatar
      Prevent errors when parsing date on malformed lines · 855cee8e
      Jérome Perrin authored
      We observed lines in our logs where the timestamp field was still
      respecting the timestamp regexp, so the line was not reported as
      invalid, but parsing such timestamp caused a ValueError in
      _matchToDateTime
      
      The beginning of line was:
      127.0.0.1 - - [14/Jul/2017:127.0.0.1 - - [14/Jul/2017:09:41:41 +0200]
      
      Which uses `[14/Jul/2017:127.0.0.1 - - [14/Jul/2017:09:41:41 +0200]` as
      timestamp, so this fail the simple .split() used to separate timestamp
      and timezone.
      
      Added a minimal test case to reproduce this specific problem.
      855cee8e
  11. 14 Sep, 2016 3 commits
  12. 11 Jul, 2014 2 commits
  13. 17 Apr, 2014 2 commits
  14. 27 Mar, 2014 2 commits
  15. 20 Mar, 2014 3 commits
  16. 10 Aug, 2013 6 commits
  17. 07 Aug, 2013 1 commit
    • Vincent Pelletier's avatar
      Add an option to convert timezone. · cd70bb49
      Vincent Pelletier authored
      Do it while parsing, so (for example) day splitting happens at midnight in
      chosen timezone instead of midnight in source timezone.
      When no timezone is provided, use input's times verbatim.
      DST changes cause artefacts in graphs (double or zeroed hour).
      Also, display used timezone in generated page.
      cd70bb49