NAME
    gcloud storage diagnose - diagnose Google Cloud Storage

SYNOPSIS
    gcloud storage diagnose URL [--test-type=[TEST_TYPES,...]]
        [--download-type=DOWNLOAD_TYPE; default=<DownloadType.FILE: 'FILE'>]
        [--logs-path=LOGS_PATH]
        [--upload-type=UPLOAD_TYPE; default=<UploadType.FILE: 'FILE'>]
        [--process-count=PROCESS_COUNT] [--thread-count=THREAD_COUNT]
        [--object-count=OBJECT_COUNT (--object-size=OBJECT_SIZE
          | --object-sizes=[OBJECT_SIZES,...])]
        [--export : --destination=DESTINATION] [GCLOUD_WIDE_FLAG ...]

DESCRIPTION
    The diagnose command runs a series of diagnostic tests for common gcloud
    storage issues.

    The URL argument must name an exisiting bucket for which the user already
    has write permissions. Standard billing also applies. Several test
    files/objects will be uploaded and downloaded to this bucket to gauge out
    the performance metrics. All the temporary files will be deleted on
    successfull completion of the command.

    By default, the command executes DOWNLOAD_THROUGHPUT, UPLOAD_THROUGHPUT and
    LATENCY tests. Tests to execute can be overriden by using the --test-type
    flag. Each test uses the command defaults or gcloud CLI configurations for
    performing the operations. This command also provides a way to override
    these values via means of different flags like --process-count,
    --thread-count, --download-type, etc.

    The command outputs a diagnostic report with sytem information like free
    memory, available CPU, average CPU load per test, disk counter deltas and
    diagnostic information specific to individual tests on successful
    completion.

EXAMPLES
    The following command runs the default diagnostic tests on my-bucket
    bucket:

        $ gcloud storage diagnose gs://my-bucket

    The following command runs only UPLOAD_THROUGHPUT and DOWNLOAD_THROUGHPUT
    diagnostic tests:

        $ gcloud storage diagnose gs://my-bucket \
            --test-type=UPLOAD_THROUGHPUT,DOWNLOAD_THROUGHPUT

    The following command runs the diagnostic tests using 10 objects of 1MiB
    size each with 10 threads and 10 processes at max:

        $ gcloud storage diagnose gs://my-bucket --no-of-objects=10 \
            --object-size=1MiB --process-count=10 --thread-count=10

    The following command can be used to bundle and export the diagnostic
    information to a user defined PATH destination:

        $ gcloud storage diagnose gs://my-bucket --export \
            --destination=<PATH>

POSITIONAL ARGUMENTS
     URL
        Bucket URL to use for the diagnostic tests.

FLAGS
     --test-type=[TEST_TYPES,...]
        Tests to run as part of this diagnosis. Following tests are supported:

        DIRECT_CONNECTIVITY: Run a test upload over the Direct Connectivity
        network path and run other diagnostics if the upload fails.

        DOWNLOAD_THROUGHPUT: Upload objects to the specified bucket and record
        the number of bytes transferred per second.

        UPLOAD_THROUGHPUT: Download objects from the specified bucket and
        record the number of bytes transferred per second.

        LATENCY: Write the objects, retrieve their metadata, read the objects,
        and record latency of each operation.

        TEST_TYPES must be one of: DIRECT_CONNECTIVITY, DOWNLOAD_THROUGHPUT,
        LATENCY, UPLOAD_THROUGHPUT.

     --download-type=DOWNLOAD_TYPE; default=<DownloadType.FILE: 'FILE'>
        Download strategy to use for the DOWNLOAD_THROUGHPUT diagnostic test.

        STREAMING: Downloads the file in memory, does not use parallelism.
        --process-count and --thread-count flag values will be ignored if
        provided.

        SLICED: Performs a sliced download
        (https://cloud.google.com/storage/docs/sliced-object-downloads) of
        objects to a directory. Parallelism can be controlled via
        --process-count and --thread-count flags.

        FILE: Download objects as files. Parallelism can be controlled via
        --process-count and --thread-count flags.

        DOWNLOAD_TYPE must be one of: FILE, SLICED, STREAMING.

     --logs-path=LOGS_PATH
        If the diagnostic supports writing logs, write the logs to this file
        location.

     --upload-type=UPLOAD_TYPE; default=<UploadType.FILE: 'FILE'>
        Upload strategy to use for the UPLOAD_THROUGHPUT diagnostic test.

        FILE: Uploads files to a bucket. Parallelism can be controlled via
        --process-count and --thread-count flags.

        PARALLEL_COMPOSITE: Uploads files using a parallel composite strategy
        (https://cloud.google.com/storage/docs/parallel-composite-uploads).
        Parallelism can be controlled via --process-count and --thread-count
        flags.

        STREAMING: Streams the data to the bucket, does not use parallelism.
        --process-count and --thread-count flag values will be ignored if
        provided.

        UPLOAD_TYPE must be one of: FILE, PARALLEL_COMPOSITE, STREAMING.

     --process-count=PROCESS_COUNT
        Number of processes at max to use for each diagnostic test.

     --thread-count=THREAD_COUNT
        Number of threads at max to use for each diagnostic test.

     Object properties:

     --object-count=OBJECT_COUNT
        Number of objects to use for each diagnostic test.

        This flag argument must be specified if any of the other arguments in
        this group are specified.

     Object size properties:

     Exactly one of these must be specified:

       --object-size=OBJECT_SIZE
          Object size to use for the diagnostic tests.

       --object-sizes=[OBJECT_SIZES,...]
          List of object sizes to use for the tests. Sizes should be provided
          for each object specified using --object-count flag.

     Export diagnostic bundle.

     --export
        Generate and export a diagnostic bundle. The following information will
        be bundled and exported into a gzipped tarball (.tar.gz):

        ◆ Latest gcloud CLI logs.
        ◆ Output of running the gcloud storage diagnose command.
        ◆ Output of running the gcloud info --anonymize command.

        Note: This command generates a bundle containing system information
        like disk counter detlas, CPU information and system configurations.
        Please exercise caution while sharing.

        This flag argument must be specified if any of the other arguments in
        this group are specified.

     --destination=DESTINATION
        Destination file path where the diagnostic bundle will be exported.

GCLOUD WIDE FLAGS
    These flags are available to all commands: --access-token-file, --account,
    --billing-project, --configuration, --flags-file, --flatten, --format,
    --help, --impersonate-service-account, --log-http, --project, --quiet,
    --trace-token, --user-output-enabled, --verbosity.

    Run $ gcloud help for details.

NOTES
    This variant is also available:

        $ gcloud alpha storage diagnose

