wolfsoftware.ttfb

A tool to display the time-to-first-byte for any given url.

https://github.com/platformengineerstoolbox/time-to-first-byte-package

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.6%) to scientific vocabulary

Keywords

latency-test time-to-first-byte wolfsoftware
Last synced: 6 months ago · JSON representation ·

Repository

A tool to display the time-to-first-byte for any given url.

Basic Info
  • Host: GitHub
  • Owner: PlatformEngineersToolbox
  • License: mit
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 211 KB
Statistics
  • Stars: 1
  • Watchers: 0
  • Forks: 0
  • Open Issues: 3
  • Releases: 5
Topics
latency-test time-to-first-byte wolfsoftware
Created almost 2 years ago · Last pushed 6 months ago
Metadata Files
Readme Contributing Funding License Code of conduct Citation Codeowners Security

README.md

PlatformEngineersToolbox logo
Github Build Status License Created
Release Released Commits since release

Overview

This tool is designed to allow you to measure and display the 'Time To First Byte' (ttfb) for a given url. It can also help identify bottlenecks or latency issues that might be causing slow responses.

We also provide a simple bash version if you prefer that to a python package.

Installation

shell pip install wolfsoftware.ttfb

Usage

``` usage: ttfb [-h] [-d] [-v] [-V] [-m | -f] [-c COUNT] -u URL

Display the time-to-first-byte for any given url.

flags: -h, --help show this help message and exit -d, --debug Very noisy (default: False) -v, --verbose Verbose output - show scan results as they come in (default: False) -V, --version Show program's version number and exit.

exclusive flags: -m, --minimal Show minimal set of timing values. (default: False) -f, --full Show full set of timing values. (default: False)

optional: -c COUNT, --count COUNT How many times to test 1-25

required: -u URL, --url URL The URL to test (default: None) ```

Results Output

Single Connection Test

Standard Output (Default)

```

                                      Time to First Byte Test

Lookup Time: 0.005087 Connect Time: 0.025123 StartXfer Time (TTFB): 0.111106 Total Time: 0.111173

```

Minimal Output (-m)

```

             Time to First Byte Test

StartXfer Time (TTFB): 0.106124 Total Time: 0.106208

```

Full Output (-f)

```

                                                                           Time to First Byte Test

Lookup Time: 0.004987 Connect Time: 0.022486 AppCon Time: 0.089366 PreXfer Time: 0.089427 Redirect Time: 0.000000 StartXfer Time (TTFB): 0.108404 Total Time: 0.108475

```

Repeated Connection Test

It is also possible to specify how many connections to make when testing by adding the -c flag. This can be combined with the existing output flags (-m and -f)

```

                                      Time to First Byte Test

Lookup Time: 0.005112 Connect Time: 0.034810 StartXfer Time (TTFB): 0.119705 Total Time: 0.119777 Lookup Time: 0.005087 Connect Time: 0.023240 StartXfer Time (TTFB): 0.108551 Total Time: 0.108623 Lookup Time: 0.004158 Connect Time: 0.021478 StartXfer Time (TTFB): 0.110971 Total Time: 0.111036 Lookup Time: 0.005108 Connect Time: 0.022807 StartXfer Time (TTFB): 0.111455 Total Time: 0.111526

Lookup Time: 0.004764 Connect Time: 0.022720 StartXfer Time (TTFB): 0.111475 Total Time: 0.111547

```

Timing Key

| Time | Description | | :---------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | Lookup time (timenamelookup) | The time, in seconds, it took from the start until the name resolving was completed. | | Connect time (timeconnect) | The time, in seconds, it took from the start until the TCP connect to the remote host was completed. | | AppCon time (timeappconnect) | The time, in seconds, it took from the start until the SSL/SSH/etc connect/handshake to the remote host was completed. | | PreXfer time (timepretransfer) | The time, in seconds, it took from the start until the file transfer was just about to begin. This includes all 'pre-transfer' commands and negotiations that are specific to the particular protocol(s) involved. | | Redirect time (timeredirect) | The time, in seconds, it took for all redirection steps include name lookup, connect, pretransfer and transfer before the final transaction was started. 'timeredirect' shows the complete execution time for multiple redirections. | | StartXfer time (timestarttransfer) | The time, in seconds, it took from the start until the first byte was just about to be transferred. This includes 'timepretransfer' and also the time the server needed to calculate the result. | | Total time | The sum of all the other times. |

Response Times: The 3 Important Limits

Short note for your information.

  • 0.1 second – is about the limit for having the user feel that the system is reacting instantaneously, meaning that no special feedback is necessary except to display the result;
  • 1.0 second – is about the limit for the user’s flow of thought to stay uninterrupted, even though the user will notice the delay. Normally, no special feedback is necessary during delays of more than 0.1 but less than 1.0 second, but the user does lose the feeling of operating directly on the data;
  • 10 seconds – is about the limit for keeping the user’s attention focused on the dialogue. For longer delays, users will want to perform other tasks while waiting for the computer to finish, so they should be given feedback indicating when the computer expects to be done. Feedback during the delay is especially important if the response time is


Owner

  • Name: Platform Engineers Toolbox
  • Login: PlatformEngineersToolbox
  • Kind: organization
  • Email: github@wolfsoftware.com
  • Location: United Kingdom

A selection of tools to help platform engineers. Created by Wolf Software.

Citation (CITATION.cff)

cff-version: 1.2.0
message: If you use this software, please cite it using these metadata.
title: Time to First Byte
abstract: Display the time-to-first-byte for any given url.
type: software
version: 0.1.2
date-released: 2024-06-26
repository-code: https://github.com/PlatformEngineersToolbox/time-to-first-byte-python
keywords:
  - "Wolf Software"
  - "Software"
license: MIT
authors:
  - family-names: "Wolf"
    orcid: "https://orcid.org/0009-0007-0983-2072"

GitHub Events

Total
  • Delete event: 78
  • Issue comment event: 167
  • Push event: 138
  • Pull request review event: 127
  • Pull request event: 156
  • Create event: 76
Last Year
  • Delete event: 78
  • Issue comment event: 167
  • Push event: 138
  • Pull request review event: 127
  • Pull request event: 156
  • Create event: 76

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 0
  • Total pull requests: 60
  • Average time to close issues: N/A
  • Average time to close pull requests: 5 days
  • Total issue authors: 0
  • Total pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 1.82
  • Merged pull requests: 39
  • Bot issues: 0
  • Bot pull requests: 60
Past Year
  • Issues: 0
  • Pull requests: 60
  • Average time to close issues: N/A
  • Average time to close pull requests: 5 days
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 1.82
  • Merged pull requests: 39
  • Bot issues: 0
  • Bot pull requests: 60
Top Authors
Issue Authors
Pull Request Authors
  • dependabot[bot] (121)
  • TGWolf (2)
Top Labels
Issue Labels
Pull Request Labels
dependabot: dependencies (121) dependabot: auto approve (91) dependabot: auto merge (91) dependabot: ecosystem : github actions (87) dependabot: ecosystem : python (34) dependabot: manual merge (18) resolution: closed (2) state: stale (2)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 11 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 3
  • Total maintainers: 1
pypi.org: wolfsoftware.ttfb

Display the time-to-first-byte for any given url.

  • Versions: 3
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 11 Last month
Rankings
Dependent packages count: 10.9%
Average: 36.2%
Dependent repos count: 61.5%
Maintainers (1)
Last synced: 6 months ago

Dependencies

.github/workflows/cicd.yml actions
  • ActionsToolbox/get-language-versions-action 446919617fd774095b5dd3ed71c39dd3fd0d8f4f composite
  • actions/checkout a5ac7e51b41094c92402da3b24376905380afc29 composite
  • actions/setup-python 82c7e631bb3cdc910f68e0081d67478d79c6982d composite
.github/workflows/citation-validation.yml actions
  • ActionsToolbox/get-language-versions-action 446919617fd774095b5dd3ed71c39dd3fd0d8f4f composite
  • actions/checkout a5ac7e51b41094c92402da3b24376905380afc29 composite
  • citation-file-format/cffconvert-github-action 4cf11baa70a673bfdf9dad0acc7ee33b3f4b6084 composite
  • ruby/setup-ruby cacc9f1c0b3f4eb8a16a6bb0ed10897b43b9de49 composite
.github/workflows/codeql.yml actions
  • Gamesight/slack-workflow-status 68bf00d0dbdbcb206c278399aa1ef6c14f74347a composite
  • actions/checkout a5ac7e51b41094c92402da3b24376905380afc29 composite
  • github/codeql-action/analyze a57c67b89589d2d13d5ac85a9fc4679c7539f94c composite
  • github/codeql-action/autobuild a57c67b89589d2d13d5ac85a9fc4679c7539f94c composite
  • github/codeql-action/init a57c67b89589d2d13d5ac85a9fc4679c7539f94c composite
.github/workflows/delete-old-workflow-runs.yml actions
  • Gamesight/slack-workflow-status 68bf00d0dbdbcb206c278399aa1ef6c14f74347a composite
  • Mattraks/delete-workflow-runs 39f0bbed25d76b34de5594dceab824811479e5de composite
.github/workflows/dependabot.yml actions
  • dependabot/fetch-metadata 5e5f99653a5b510e8555840e80cbf1514ad4af38 composite
.github/workflows/document-validation.yml actions
  • ActionsToolbox/get-language-versions-action 446919617fd774095b5dd3ed71c39dd3fd0d8f4f composite
  • actions/checkout a5ac7e51b41094c92402da3b24376905380afc29 composite
  • actions/setup-node 60edb5dd545a775178f52524783378180af0d1f8 composite
  • ruby/setup-ruby cacc9f1c0b3f4eb8a16a6bb0ed10897b43b9de49 composite
.github/workflows/generate-release.yml actions
  • ActionsToolbox/get-language-versions-action 446919617fd774095b5dd3ed71c39dd3fd0d8f4f composite
  • Bullrich/generate-release-changelog 6b60f004b4bf12ff271603dc32dbd261965ad2f2 composite
  • actions/checkout a5ac7e51b41094c92402da3b24376905380afc29 composite
  • actions/setup-python 82c7e631bb3cdc910f68e0081d67478d79c6982d composite
  • softprops/action-gh-release 69320dbe05506a9a39fc8ae11030b214ec2d1f87 composite
.github/workflows/generate-test-release.yml actions
  • ActionsToolbox/get-language-versions-action 446919617fd774095b5dd3ed71c39dd3fd0d8f4f composite
  • Bullrich/generate-release-changelog 6b60f004b4bf12ff271603dc32dbd261965ad2f2 composite
  • actions/checkout a5ac7e51b41094c92402da3b24376905380afc29 composite
  • actions/setup-python 82c7e631bb3cdc910f68e0081d67478d79c6982d composite
  • softprops/action-gh-release 69320dbe05506a9a39fc8ae11030b214ec2d1f87 composite
.github/workflows/greetings.yml actions
  • actions/first-interaction 34f15e814fe48ac9312ccf29db4e74fa767cbab7 composite
.github/workflows/purge-deprecated-workflow-runs.yml actions
  • Gamesight/slack-workflow-status 68bf00d0dbdbcb206c278399aa1ef6c14f74347a composite
  • otto-de/purge-deprecated-workflow-runs 31a4e821d43e9a354cbd65845922c76e4b4b3633 composite
.github/workflows/repository-validation.yml actions
  • ActionsToolbox/get-language-versions-action 446919617fd774095b5dd3ed71c39dd3fd0d8f4f composite
  • actions/checkout a5ac7e51b41094c92402da3b24376905380afc29 composite
  • actions/setup-go cdcb36043654635271a94b9a6d1392de5bb323a7 composite
  • actions/setup-python 82c7e631bb3cdc910f68e0081d67478d79c6982d composite
.github/workflows/security-hardening.yml actions
  • actions/checkout a5ac7e51b41094c92402da3b24376905380afc29 composite
  • zgosalvez/github-actions-ensure-sha-pinned-actions 40e45e738b3cad2729f599d8afc6ed02184e1dbd composite
.github/workflows/stale.yml actions
  • Gamesight/slack-workflow-status 68bf00d0dbdbcb206c278399aa1ef6c14f74347a composite
  • actions/stale 28ca1036281a5e5922ead5184a1bbf96e5fc984e composite
requirements.txt pypi
  • colorama ==0.4.6
  • setuptools ==69.5.1
setup.py pypi
requirements-dev.txt pypi
  • setuptools ==75.8.0 development