diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py
index a8c86a2e66..5922f759c7 100644
--- a/openstackclient/compute/v2/server.py
+++ b/openstackclient/compute/v2/server.py
@@ -17,6 +17,7 @@
 
 import logging
 import os
+import sys
 import time
 
 from cliff import command
@@ -599,7 +600,6 @@ class ResumeServer(command.Command):
 class ShowServer(show.ShowOne):
     """Show server command"""
 
-    api = 'compute'
     log = logging.getLogger(__name__ + '.ShowServer')
 
     def get_parser(self, prog_name):
@@ -608,6 +608,11 @@ class ShowServer(show.ShowOne):
             'server',
             metavar='<server>',
             help='Name or ID of server to display')
+        parser.add_argument(
+            '--diagnostics',
+            action='store_true',
+            default=False,
+            help='Display diagnostics information for a given server')
         return parser
 
     def take_action(self, parsed_args):
@@ -616,8 +621,15 @@ class ShowServer(show.ShowOne):
         server = utils.find_resource(compute_client.servers,
                                      parsed_args.server)
 
-        details = _prep_server_detail(compute_client, server)
-        return zip(*sorted(details.iteritems()))
+        if parsed_args.diagnostics:
+            (resp, data) = server.diagnostics()
+            if not resp.status_code == 200:
+                sys.stderr.write("Error retrieving diagnostics data")
+                return ({}, {})
+        else:
+            data = _prep_server_detail(compute_client, server)
+
+        return zip(*sorted(data.iteritems()))
 
 
 class SuspendServer(command.Command):